RSS RSS
Добавлено: 2006-11-25 12:27:35   Установка битов
Антон

Зарегистрирован(а): 20.02.2019

Сообщений: 1 (просмотреть)
Здравствуйте, у меня такой вопрос: есть у меня булев массив, к примеру bool CODE[8][8], эту интерпритацию мне надо представить в виде числа с 64-мя разрядами, чтобы затем выполнить с ним какие-то операции, подскажите пожалуйста как это можно привезать к вашему классу, заранее благодарен.

Ответить | Цитировать
Добавлено: 2006-12-01 00:11:33
Raul

Зарегистрирован(а): 17.03.2010

Сообщений: 101 (просмотреть)
Проще всего использовать операцию накопления со сдвигом, например:

cBigNumber b = 0;
for (i = 0; i++; i < 8)
for (j = 0; j++; j < 8)
{ b <<= 1; b += CODE [j] }

Если надо побыстрее, то можно сначала накопить код в двух 32-разрядных числах, а потом их сложить:

long a1,a2;

...(циклы для a1 и a2)...

cBigNumber b = a1; b <<= 32; b += a2

Ответить | Цитировать