Покинул форум
Сообщений всего: 750
Дата рег-ции: Авг. 2009
Помог: 16 раз(а)
Как всем известно 168&-2147483649 = 168
Однако интерпретаторы (5.2.12) у хостеров emaxihost.com и xtreemhost.com думают иначе, возвращая 0. Заглянув под бинарный капот, как у себя так и у хостеров узрел:
(свое железо, 5.2.14)
-2147483649 = 11111111111111111111111111111111,
(хостеры)
-2147483649 = 10000000000000000000000000000000
Где собака зарыта?
----- армия.. самое убогое место
Мелкий
Отправлено: 16 Февраля, 2010 - 22:02:11
Активный участник
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
Может разная разрядность систем? 32 и 64 битки?
----- PostgreSQL DBA
movEAX
Отправлено: 17 Февраля, 2010 - 07:13:38
Частый посетитель
Покинул форум
Сообщений всего: 750
Дата рег-ции: Авг. 2009
Помог: 16 раз(а)
Ну хорошо, даже если это так, то как обойти препятствие?
----- армия.. самое убогое место
ZeiZ
Отправлено: 17 Февраля, 2010 - 08:21:31
Частый гость
Покинул форум
Сообщений всего: 231
Дата рег-ции: Нояб. 2009 Откуда: Москва
Помог: 0 раз(а)
проблема с знаком "-" ИМХО
У меня в обычном калькуляторе windows:
2147483649 = 10000000000000000000000000000000
-2147483649 = 11111111111111111111111111111111
movEAX
Отправлено: 17 Февраля, 2010 - 10:04:28
Частый посетитель
Покинул форум
Сообщений всего: 750
Дата рег-ции: Авг. 2009
Помог: 16 раз(а)
ZeiZ пишет:
проблема с знаком "-" ИМХО
Абсолютно верно.. как оказалось записи 168&-2147483649 и 168&2147483649 дают одинаковый результат... Но как изменить это пока не додумался. (Добавление)
После танцев с бубном и избиения груши пришел к такому умозаключению:
168&(4294967296+(-2147483649)) = 168;
----- армия.. самое убогое место
JustUserR
Отправлено: 17 Февраля, 2010 - 16:49:49
Активный участник
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
movEAX пишет:
4294967296+(-2147483649
Только не понятно что мешает сразу написать +2147483648 которое представляется как - и конечно же надо поннить что в типах значения со знаком всегда значений в минусе не единицу больше - то есть возможный интервал значений от -2147483649 до 2147483648 если об этом речь
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
movEAX
Отправлено: 17 Февраля, 2010 - 22:16:13
Частый посетитель
Покинул форум
Сообщений всего: 750
Дата рег-ции: Авг. 2009
Помог: 16 раз(а)
Цитата:
Только не понятно что мешает сразу написать +2147483648
Это переменная на самом деле.
----- армия.. самое убогое место
JustUserR
Отправлено: 18 Февраля, 2010 - 17:02:55
Активный участник
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
movEAX пишет:
Это переменная на самом деле.
В таком случае просто прибавить еденичук - я имел в виду что для целочисленного типа данных да и вообще для любых численных типов со знаком имеется некая симметрия максимального и минимального значения - но в положительном диапазане на единичку меньше (Потому что старший бит занят под знак )
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.