Делим integer на три байта

Добавлен , опубликован
Алгоритмы, Наработки и Способности
Способ реализации:
cJass
Тип:
Алгоритм
Делим integer на три байта ! тоесть каждый от 0 до 255 с четвертым там могут быть проблемы со знаком, такчто пока лень проверять
cJass:
#define IntGetByte1(src) = (src / (256*256))
#define IntGetByte2(src) = (ModuloInteger(src, (256*256)) / 256)
#define IntGetByte3(src) = (ModuloInteger(src,256))
#define IntSetByte1(src,val) = { src = (ModuloInteger(src,(256*256)) + val*256*256 ) }
#define IntSetByte2(src,val) = { src = (ModuloInteger(src,256) + (src / (256*256))*256*256 + val*256) }
#define IntSetByte3(src,val) = { src = ((src / 256)*256 +val)}
позволяет хранить в 1 инте 3 коротких числа напр. цвет
P.S. спасибо Нетрату за это :) вобще тут не особо чего сложного на самом деле, но я забыл всю теорию)
пример:
int a = 0;

IntSetByte1(a, 86);
IntSetByte2(a, 99);

int b = IntGetByte1(a);
int c = IntGetByte2(a);

// b = 86, c = 99
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
29
12 лет назад
0
самое оно для байтофагов)
0
30
12 лет назад
0
Цвета как раз круто в 4 байта, не забывай альфу.
0
37
12 лет назад
0
тут инт воспринимается как signed и там логика доставания старшего бита другая, мне лень с ней париться
Этот комментарий удален
Чтобы оставить комментарий, пожалуйста, войдите на сайт.