Добавлен ScorpioT1000,
опубликован
Алгоритмы, Наработки и Способности
Способ реализации:
cJass
Тип:
Алгоритм
Делим integer на три байта ! тоесть каждый от 0 до 255 с четвертым там могут быть проблемы со знаком, такчто пока лень проверять
cJass:
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
Msey
12 лет назад
0
самое оно для байтофагов)
0
Clamp
12 лет назад
0
Цвета как раз круто в 4 байта, не забывай альфу.
0
ScorpioT1000
12 лет назад
0
тут инт воспринимается как signed и там логика доставания старшего бита другая, мне лень с ней париться
Этот комментарий удален
Чтобы оставить комментарий, пожалуйста, войдите на сайт.