Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как записать число -1, в формате 0x???? 
:(
    Опции темы
maxxant
Дата 13.12.2009, 13:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 8.9.2009

Репутация: нет
Всего: 1



Цитата(Abyx @  13.12.2009,  13:24 Найти цитируемый пост)
maxxant, это говорит только о том, что компилятор считал что у "0xFF" тип signed char 


ну да, и я о том.

PM MAIL   Вверх
EvilsInterrupt
Дата 15.12.2009, 16:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Executables research
***


Профиль
Группа: Завсегдатай
Сообщений: 1019
Регистрация: 14.7.2007
Где: Железнодорожный, МО, Россия

Репутация: 2
Всего: 9



2 xTr1m :
Присваивать числа в переменные в том виде как ты хочешь это ЗЛО и баги!
Поясню:
int i = 0xFFFFFFFF

Для IA-32(32-bit mode) будет круто и как ты хочешь это действительно будет (-1)
Но как только ты с компилишь свою версию под IA-64(64-bit mode), у тебя будет бага, т.к. int на 64-битах может быть 8 байтам! Т.е. младшие 32 бита будут в единичках, а старшие в нулях! Число будет содержать 0x00000000FFFFFFFF !

С этой проблемой род программеский уже сталкивался!
Раньше int весил 2 байта, как правило, потому что int задумывался разработчиками компиллеров как универсальный и что не маловажно для программистов, как быстрый тип! Быстрый потому что он максимально приближен к железу, т.е. подзатачивали под железо! А позволю напомнить раньше были в ходу 16 битные процы(среди распространенных занимали самое болльшое кол-во), т.е. регистры были AX, BX. Потом конечно пошел в ходу i386 и тогда разработчики компиллеров стали приравняли int к 4 байтам, ибо EAX, EBX, ECX, etc !
Вот тут-то многие за головы хватались, т.к. присваивали в том виде как ты это хочешь делать! ;)

ЗЫ:
Почитай по типизации, типы придумали не лохи! Это действительно нужно знать, если хочешь знать что твой алгоритм "бронебойный"
PM MAIL WWW ICQ Jabber   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0506 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.