"Константин Прайссер (Konstantin Preisser) недавно обнаружил нечто весьма любопытное: Java — и рантайм и компилятор — входит в бесконечный цикл при конвертации десятичного 2.2250738585072012e-308 в double."
http://habrahabr.ru/blogs/java/112948/
Теоретически, при удачном сложении звезд, так можно кого-нибудь и зачелленджить... Так что товарищи javaписатели имейте ввиду.
челенжавзлома.На топкодере челенж не получится, потому что убьется и авторское решение тоже :о
Гораздо веселее то, что Math.abs(Integer.MIN_VALUE) == Integer.MIN_VALUE
Правда, не исключено, что в других языках тоже так, я не проверял.
нет, (2^31-1) + 1 ведёт к переполнению, и указыввает на число 0
2^31 - 1 = 1111111111111111111...(32 единицы)
.....11111+1 = ....000000000000
а 2^31 = 1000000000000000000(31 нолик)
Ни в коем случае не оскорбляю вас, но не понимаю, как вы можете быть жёлтым, если не знаете таких основ...
(2^31-1) + 1 будет указывать на (-2^31).
ибо:
2^31 - 1 = 1000...(31 ноль)...0000 - 1 = 01111...(31 единица)...11111
01111...(31 единица)...11111 + 1 = 1000...(31 ноль)...0000 = -2^31 - это отрицательное число. Все отрицательные числа начинаются с 1 в битовой записи, причём самое маленькое, это число у которого старший бит равен 1, остальные 0.
По этой логике, самое большое отрицательное число (-1), это которое имеет все 1 в битовой записи, так оно и есть: если прибавить к нему 1, то получим 0.
К большому сожалению, по-моему.
Ой, че то я попутал
2^31 - 1 = 1111111111111111111...(32 единицы)
вот эта моя строчка гон, 2^32 - 1 = 111111...(32 еденицы) или -1
я просто немного попутал в цифрах, а так конечно в битах и "теории цифр" немного понимаю. я даже длинку всегда пишу в дополнительном коде (при любом основании СС), чтобы с отрицательными числами не заморачиваться :)
Скорее всего, и в других языках то же самое.
Блин, снова коммент не туда написал.
Питон справился. Что, впрочем, неудивительно.
>>> -2**30-2**30
-2147483648
>>> abs(-2**30-2**30)
2147483648L
Там если полазить по ссылкам, то еще с php можно найти предысторию: http://www.exploringbinary.com/php-hangs-on-numeric-value-2-2250738585072011e-308/
А число действительно достаточно особенное, хотя разные его вариации наверняка тоже работают.