2013-09-29 3 views
12

Какое минимальное значение 32-разрядного целого числа со знаком, является вопросом безопасности «вызов», чтобы сделать учетную запись на [этом сайте] (изменить: ссылка теперь вредоносная) (не судите, просто любопытно и скучно).Каково минимальное значение 32-разрядного целого числа со знаком?

Я предполагал, что они говорили о типичном 32-битном int, который может хранить цифры размером 2,147,483,647. Но когда я попробовал -2147483647, он сказал, что у меня вопрос неправильный. Я пробовал несколько вариантов, таких как -2,147,483,647, но ничего не работает ...

Я неверно истолковал вопрос или что-то не так с веб-сайтом?

PS Я также попытался -2147483648, как предложил

Вот картинка enter image description here

+0

Вы пробовали -2147483648 или, возможно, даже 0 –

+1

Вы внимательно прочитали вопрос, прежде чем вводить номер? Я заметил, что он отскакивает между запросом на максимум и с просьбой о минимальном (нажмите несколько раз обновить и посмотреть, как он изменится). Убедитесь, что вы знаете, какой! ;) – lurker

ответ

4

Подписанные 32-битные целые числа могут снизиться до -2,147,483,648

+0

Не работает, все еще говорит, что я ошибаюсь – java

+0

и предположительно вы пробовали без ',' –

+0

Кстати, когда я иду на этот сайт, он спрашивает меня о максимальном? Возможно, вы читаете это неправильно/каждый раз задаете другой вопрос? –

18

Наиболее используемый размер целого составляет 32 бита. Последний бит используется для различения положительных и отрицательных чисел. Если последний бит НЕ установлен, то число положительное. Поэтому максимальное положительное число равно 0x7FFFFFFF = (1<<31)-1 = 2147483647 (последний бит не установлен).

Для обозначения отрицательных чисел двух комплиментов широко используется. Вы можете идентифицировать символ положительного числа, инвертируя его все биты и добавляя 1. Таким образом, контрагент для максимального целого числа равен 0x80000001, однако это NOT минимальное число.

Минимальное число в двухмесячных комментариях: 0x80000000 = -2147483648. Интересным фактом этого числа является то, что он равен своему собственному дополнению, то есть инвертирование всех битов приводит к 0x7FFFFFFF и добавлению 1 дает 0x80000000, что равно исходному числу.

Дополнительная информация о дополнении 2 в wikipedia.

 Смежные вопросы

  • Нет связанных вопросов^_^