Одна интересная реализация подсчёта числа установленных битов в файле. Код на языке C++ с обильным использованием STL. Если всё так хорошо, то почему это в блоге «Ненормальное программирование» (читатели настоятельно рекомендовали перенести в блог C++) спросите Вы? Сейчас увидите :)
Во-первых объявим класс битового итератора:
Теперь подсчитаем число установленных бит в исполняемом файле:
Забавно, неправда ли? А чтобы подсчитать число нулевых бит, всего лишь нужно вызвать:
Вместо:
Исходный код выложен здесь:codepad.org/S1TT56PR (см. ссылку в UPDATE2).
UPDATE1:
Товарищ gribozavr справедливо заметил, что правильней использовать константу CHAR_BIT вместо числа 8 в коде.
UPDATE2:
Товарищ mark_ablov указал на изъян в конструкторе копирования, код в статье обновлён и вот исправленная версия кода: http://codepad.org/knEKdNJX.
Во-первых объявим класс битового итератора:
Теперь подсчитаем число установленных бит в исполняемом файле:
Забавно, неправда ли? А чтобы подсчитать число нулевых бит, всего лишь нужно вызвать:
Вместо:
Исходный код выложен здесь:
UPDATE1:
Товарищ gribozavr справедливо заметил, что правильней использовать константу CHAR_BIT вместо числа 8 в коде.
UPDATE2:
Товарищ mark_ablov указал на изъян в конструкторе копирования, код в статье обновлён и вот исправленная версия кода: http://codepad.org/knEKdNJX.