Показать сообщение отдельно
Старый 23.03.2009, 19:21   #2
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений
(для 15,675 пользователей)
Ответ: Как записать два целых натуральных числа одной переменной?

Ну так всё несложно) Кстати где я рассказывал - не 3 а 4 числа)
Интеджер (в блице) - это 4 байта. Не стоит всегда рассматривать Интеджер как число, нужно помнить что это 4 байта информации.
В твоём случае нужно в 1 интегер пихнуть 2 числа. Т.е. это 4 байта, то пусть на каждое число будет отведено по 2 - по-братски.
Т.к. на каждое число отведено по 2 байта, то оно сможет принимать 65536 (2^(8*2)) значений. Если нужно больше значений, то тут уж придётся юзать больше байт( Итак, определились.
180 будет лежать в "правых" двух байтах, а 71 - в "левых". 180 записываем просто так:
DvaChisla = 180
Теперь надо записать ещё и 71. Для этого придётся "сдвинуть" его влево на 2 байта, т.е. на 65536 значений. Умножаем 71 на 65536 и плюсуем:
DvaChisla = DvaChisla + 71*65536
Вот, записали.
Теперь читаем.
Прочитаем сначала наши 180. Для этого вычисляем остаток от деления на 65536
PervoeChislo = DvaChisla Mod 65635
Воторое (71) прочитать тож несложно, нужно на этот раз поделить на 65536:
VtoroeChislo = DvaChisla/65536

Вот собсно и алгоритм.
Только при очевидной геморности я бы всё же сделал две переменные)
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**

* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена

(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо ABTOMAT за это полезное сообщение:
ELIAS (24.03.2009), Randomize (29.06.2009)