Как разделить / закодировать число в набор битовых массивов, которые множат / умножают / и т.д., чтобы получить исходное число - PullRequest
0 голосов
/ 15 июня 2019

Я нашел где-то десятичное представление числа 14852543, являющегося 226 161 191. Я предполагаю, что это потому, что это каким-то образом множит или умножает или что-то в этом числе, но я не уверен, как это делается.

Первая часть вопроса заключается в том, как преобразовать эти байтовые значения обратно в число. Вторая часть вопроса состоит в том, как разбить число на набор битовых массивов (не байтов), которые выполняют то же самое, что и выше. Так, например, вместо 3 8-битных чисел это может быть 5 7-битных чисел или 12 3-битных чисел. Хотите знать, что такое уравнение или алгоритм, который может это сделать?

1 Ответ

0 голосов
/ 16 июня 2019

Принимая 14852543 в качестве входного примера.

Случай 1 [12 3-битных чисел] :

Шаг 0: Настройка 'группы битов.12 х [000].Или [000 000 000 000 000 000 000 000 000 000 000 000]

Шаг 1: преобразовать 14852543 в двоичный файл .Должен получить 111000101010000110111111.

Шаг 2: 111000101010000110111111 до [000 000 000 000 111 000 101 010 000 110 111 111].

Шаг 3: [000 000 000 000 111 000 101 010 000 110111 111] до [0 0 0 0 7 0 5 2 0 6 7 7]

Случай 2 [5 7-битных чисел] :

Шаг 0: установка битов.5 х [0000000].Или [0000000 0000000 0000000 0000000 0000000]

Шаг 1: преобразовать 14852543 в двоичный файл .Должен получить 111000101010000110111111.

Шаг 2: с 111000101010000110111111 до [0000000 0000111 0001010 1000011 0111111].

Шаг 3: [0000000 0000111 0001010 1000011 0111111] до [0 7

Случай 3 [3 8-битных числа] :

Шаг 0: Установить биты.3 х [00000000].Или [00000000 00000000 00000000]

Шаг 1: преобразовать 14852543 в двоичный файл .Должен получить 111000101010000110111111.

Шаг 2: 111000101010000110111111 до [11100010 10100001 1011111].

Шаг 3: [11100010 10100001 1011111] до [226 161 191]


Надеюсь, что он отвечает ... (:

...