Побитовая работа с мелкими значениями
От: TiberiuZ  
Дата: 20.11.07 16:41
Оценка:
Как в с# быстрее организовать хранение мелких парных данных?
Т.е. надо хранить 2 парные переменные: одна от 0 до 3, другая от 0 до 15 и максимально быстро работать с ними.

вариант стандартный

byte val1=2,val2=14;

struct dannie{byte a;byte b;}

dannie qwe;
qwe.a=val1;
qwe.b=val2;


Вариант более быстрый:1 значение хранится *4 от 0 до 64, а второе от 0 до 3 и они суммируются

int dannie=0;

//присвоение значения 1
dannie=(dannie-dannie%4)+val1;
//считывание значения 1
val1=dannie%4;

//присвоение значения 2
dannie=dannie%4+val2;
//считывание значения 2
val2=(dannie-dannie%4)/4;


Как использовать оператор % с переменной типа byte не знаю.

Хочется взять однобайтовую пеерменную и отвести первые 2 бита под одну переменную, следующие 4 бита под другую.
как это сделать и будет ли это работать быстрее?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.