|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
29.01.2012, 15:58 | #631 |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
Эту задачу должен сразу решить разработчик. Зная структуру своей программы он должен видеть пересечение переменных и задавать их тип соответственно. Если используются числа от 0 до 255 только! ...то тип их будет Byte, если от 0 до 65535, то - Word, все остальные, включая отрицательные - в тип Integer, а с запятыми, универсальный - Real, или тот же Double. Не нужно так критично подходить к выбору типа данных в нашем случае. Касаемо игры нет смысла применять например ShortInt (от -127 до 127), или Int64. Экономить память нужно в другом месте - при загрузке и хранении графических данных. Нужно хорошо подумать, какие именно диапазоны чисел используются в игре и сделать выводы.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
|
29.01.2012, 17:31 | #632 | |
Форумчанин
Регистрация: 20.04.2009
Сообщений: 136
|
Beermonza,
Цитата:
Видимо, я не правильно задал вопрос: есть переменная Month, которая принимает значения от 1 до 12. Мне нужно получить правильное значение, равное 1, если пользователь ввел 13. Поэтому я привел аналогию с Byte(-4) = 252. Видимо со своим типом такой возможности нет, кроме как пользоваться дополнительной функцией собственного производства. Да и с Byte похоже происходит сдвиг на аппаратном уровне, куда и ассемблером не добраться, что уж говорить о Pascal’е. P.S. Int64 я вообще не разу не использовал, так как не работал с такими числами. А вот почему нет смысла использовать ShortInt я так и не понял |
|
29.01.2012, 19:00 | #633 | |
Высокая репутация
СуперМодератор
Регистрация: 27.07.2008
Сообщений: 15,596
|
Цитата:
E-Mail: arigato.freelance@gmail.com
|
|
29.01.2012, 19:17 | #634 | |
Форумчанин
Регистрация: 20.04.2009
Сообщений: 136
|
Arigato, спасибо, почитал и подтвердил свои предположения:
Цитата:
|
|
29.01.2012, 19:21 | #635 |
Высокая репутация
СуперМодератор
Регистрация: 27.07.2008
Сообщений: 15,596
|
Не пойму, о каком сдвиге идет речь?
E-Mail: arigato.freelance@gmail.com
|
30.01.2012, 15:50 | #636 |
Форумчанин
Регистрация: 20.04.2009
Сообщений: 136
|
|
30.01.2012, 17:11 | #637 |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
Условие не помогает? ...выход за пределы специфического диапазона всегда обрабатывается фильтром на основе условного оператора: If, Case, While.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
|
30.01.2012, 17:20 | #638 |
Высокая репутация
СуперМодератор
Регистрация: 27.07.2008
Сообщений: 15,596
|
Ну так Byte не может содержать отрицательных значений.
E-Mail: arigato.freelance@gmail.com
|
30.01.2012, 17:37 | #639 |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
Alexan-Dwer, если тебе нужно не допустить попадания отрицательных начений в переменную байт, диапазона 0 - 255, то есть функция Abs(), ...было -4, станет просто 4:
Код:
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
|
31.01.2012, 10:00 | #640 |
Форумчанин
Регистрация: 04.08.2009
Сообщений: 684
|
Если я правильно понял, ему не нужно модуль. Предполагается именно сдвиг влево. Т.е. если тип byte имеет диапазон 0 - 255, то при инициализации byte(-1) получим максимальное значение из диапазона (255). Соответственно, byte(-4) делает сдвиг на 4 влево, получаем 252.
Для своего типа если только самому писать если значение больше максимального, то присвоить разницу Код:
Код:
Еслия Вам помог, не поленитесь нажать на весы и оставить отзыв. Это не займет много времени, но даст понять, что я старался не зря =)
Мой ник зарегистрирован, а твой? Последний раз редактировалось Wicort; 31.01.2012 в 10:04. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Хорошие уроки | Render | Общие вопросы Delphi | 9 | 15.09.2012 07:13 |
Акцесс вопросы новичков | Yaga | Помощь студентам | 4 | 02.06.2008 00:16 |
Учебники для новичков в програмировании | Рар | Общие вопросы Delphi | 6 | 08.01.2007 08:07 |