Скорее всего, вы рассматриваете ha sh как строку и вычисляете биты для строки.
Шестнадцатеричная строка занимает в 2 раза больше места, чем та же информация, представленная в байтах. Например, если бы ha sh был 00
, протокол bitcoin обработал бы его как один байт 0x00
.
Однако многие другие представления будут обрабатываться как строка "00"
, которая преобразуется в 0x3030 или два байта.
Если у вас есть 32-байтовый блок ha sh в некоторых запрограммируйте как строку, и вы рассчитаете количество битов, в результате вы получите 512 вместо 256.