Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Blitz3D

Ответ
 
Опции темы
Старый 23.03.2009, 17:54   #1
ELIAS
Знающий
 
Аватар для ELIAS
 
Регистрация: 31.08.2008
Адрес: Arrakis
Сообщений: 234
Написано 6 полезных сообщений
(для 6 пользователей)
Вопрос Как записать два целых натуральных числа одной переменной?

Да, нужно например числа 71 и 180 записать одним числом...Ну всмысле не то что можно подумать сначала. Просто из этого числа с помощью какой-нибудь функции можно будет выделить эти два исходных числа.

У меня был вариант сначала очень многообещающий
dig#=71.180
Хе. Просто выделяем целую и дробную части. А потом обломался. 180 превращалось в 18 (((

Ну, я думаю есть всё же способ Жду ваших предложений, очень просто нужно - для удобства! АВТОМАТ, помню, рассказывал про то как цвет RGB держат в одной переменной. Дак там аж 3 числа! Только я не понял ничего((

Спасибо
(Offline)
 
Ответить с цитированием
Старый 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)
Старый 23.03.2009, 19:47   #3
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: Как записать два целых натуральных числа одной переменной?

можно еще и сдвиги покурить.
как то так:
a = 180 Or (71 Shl 16)


c1 = a And $0000FFFF
c2 = (a Shr 16) And $0000FFFF


Print c1
Print c2

WaitKey
(Offline)
 
Ответить с цитированием
Эти 3 пользователя(ей) сказали Спасибо HolyDel за это полезное сообщение:
ELIAS (24.03.2009), impersonalis (25.03.2009), Randomize (29.06.2009)
Старый 23.03.2009, 20:44   #4
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений
(для 15,675 пользователей)
Ответ: Как записать два целых натуральных числа одной переменной?

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

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

(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
ELIAS (24.03.2009)
Старый 23.03.2009, 21:41   #5
zheland
Разработчик
 
Регистрация: 18.10.2007
Сообщений: 349
Написано 64 полезных сообщений
(для 95 пользователей)
Ответ: Как записать два целых натуральных числа одной переменной?

нууу... я думал умножение будет понятней
но скорее всего медленнее
(Offline)
 
Ответить с цитированием
Старый 23.03.2009, 21:52   #6
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: Как записать два целых натуральных числа одной переменной?

ну... кому как. мне смещениями проще думать. и представлять себе ряд 32 битов разбитых на части.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Phantom (23.03.2009)
Старый 24.03.2009, 12:49   #7
ELIAS
Знающий
 
Аватар для ELIAS
 
Регистрация: 31.08.2008
Адрес: Arrakis
Сообщений: 234
Написано 6 полезных сообщений
(для 6 пользователей)
Ответ: Как записать два целых натуральных числа одной переменной?

Спасибо большое.
Только при очевидной геморности я бы всё же сделал две переменные)
Да не АВТОМАТ, гемора не будет! К тому же мне надо чтобы числа принимали значение от 1 до 1000. Даже этого много)) С таким кратным работать ещё приятнее и мысленно более понятно.
Всем спасибо

АВТОМАТ, HolyDel вы не знаете что за библы для сингл-сюрфейса существуют...? Мне никто не отвечает в топе http://"http://forum.boolean.name/sh...ad.php?t=7991".. А очень надо((((((((
(Offline)
 
Ответить с цитированием
Старый 24.03.2009, 16:54   #8
tormoz
Гигант индустрии
 
Аватар для tormoz
 
Регистрация: 14.12.2005
Сообщений: 2,785
Написано 1,183 полезных сообщений
(для 4,437 пользователей)
Ответ: Как записать два целых натуральных числа одной переменной?

Сообщение от ELIAS Посмотреть сообщение
АВТОМАТ, HolyDel вы не знаете что за библы для сингл-сюрфейса существуют...? Мне никто не отвечает в топе http://"http://forum.boolean.name/sh...ad.php?t=7991".. А очень надо((((((((
http://www.screensworld.com/svalka/S...sh_AMTFull.rar
__________________
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо tormoz за это полезное сообщение:
ABTOMAT (25.03.2009), ELIAS (25.03.2009)
Старый 25.03.2009, 20:40   #9
ELIAS
Знающий
 
Аватар для ELIAS
 
Регистрация: 31.08.2008
Адрес: Arrakis
Сообщений: 234
Написано 6 полезных сообщений
(для 6 пользователей)
Ответ: Как записать два целых натуральных числа одной переменной?

tormoz, несколько вопросов!
1. Третий пример - МАВ
2. tormoz, ты сказал что библиотек для сингл-сюрфейса много. Можешь ещё предложить какие нибудь? Просто мне не нужно обыекты сингл сюрфейса передвигать. Да и тут типы в типах получатся - ну вообщем очень много фич, не нужных моей относительно простенькой игры, а программирование они усложняют - у меня и так моск плавится. Хотя другое дело что быть может твоя библиотека, tormoz, более производелное решение чем объединение объектов в один меш с помощью addmesh...Тогда я конечно наверно предпочту её. Но ведь наверное не быстрее тек?Вообще мне так плохо Меня во всем устраивала стандартная функция addmesh блитца, вот только что там с освещением происходит Нормали чтоли нарушаются как...Да хотя вроде грани остаются какие и были

Что делать, что делать??....

Последний раз редактировалось ELIAS, 25.03.2009 в 21:51.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как вывести из функции более 1-ой переменной CRASHER 2D-программирование 12 03.03.2008 18:57
Чем записать на диск? ABTOMAT Болтовня 3 10.11.2007 14:09
Файл из переменной zheland 2D-программирование 6 21.10.2007 17:24
Как записать звук с микрофона? evgen-y2k Основной форум 2 10.12.2006 17:21
Форма для ввода не целых чисел founder Основной форум 1 22.10.2006 01:19


Часовой пояс GMT +4, время: 07:09.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com