Каков хороший способ извлечь 5 сгруппированных 8 бит после очистки первых 2 групп в первую очередь?

#math #binary #computer-science

#математика #двоичный #информатика

Вопрос:

Приведен следующий пример

Учитывая этот хэш

90048143708691375074705520716729968351473889681930970060116675602760373567488 (этот хэш всегда будет одинаковой длины)

в двоичный код это переводится как

11000111 00010101 01110001 01110101 00000101 11001010 11111111 10110010 01010111 10001111 11111110 10001011 00111010 01010111 01010011 01101001 10001110 00110000 10100110 10000001 10011101 11010100 11101100 11010100 00111011 01110110 01011110 01111110 10101110 00100111 00000000 00000000

hash = ((hash gt;gt; 16) lt;lt; 16);

Я очистил две группы для установки позже в зависимости от моей реализации

Я хочу извлечь и замаскировать следующие 5 групп и те, которые всегда оцениваются до 14 полных десятичных знаков, в качестве примера это будет что-то вроде этого.

[15][32][40][93][11][71][84]

Текущая маска, с которой я возюсь, есть 0xFFFFFFFFFFA , но были крайние случаи, когда она не равнялась 14 общим десятичным знакам, а скорее 13.

Совет был бы признателен!

Комментарии:

1. Что такое группа ? Насколько я могу судить по вашему описанию, это всего лишь байт. Почему ваше хэш-значение выражается в десятичной дроби? Чтобы извлечь и замаскировать нужные вам фрагменты, вы просто делаете (hash gt;gt; 16) amp; 0xffffffffff это .

2. Совершенно непонятно, что вы пытаетесь сделать. Как вы хотите, чтобы выглядел ваш результат?

3. Группы, как в байтах, да, это правильно. То, что я хочу, чтобы конечный результат был из этих 5 байтов, — это четное число групп из 2 цифр, подобных этой, но иногда у меня возникает проблема… как показано в примере, отсутствует 1 десятичная дробь[16][96][29][36][87][03] [10][97][91][68][29][79]9