@subdan

Почему два разных шестнадцатеричных числа переводятся в одно и тоже двоичное?

У меня есть два шестнадцатеричных числа:
bebb8568a63b1818
bebb8568a63b1800
Каждое из них я перевел в двоичное:
1011111010111011100001010110100010100110001110110001100000000000
1011111010111011100001010110100010100110001110110001100000000000
Как можно заметить, оба двоичных числа идентичны.
Почему?
  • Вопрос задан
  • 2254 просмотра
Решения вопроса 2
@mamkaololosha
Вы впервые слышите о том, что числа в ПК не могут превышать определенное значение если не используется длинная арифметика?
signed char: -127 to 127 (note, not -128 to 127; this accommodates 1's-complement platforms)
unsigned char: 0 to 255
"plain" char: -127 to 127 or 0 to 255 (depends on default char signedness)
signed short: -32767 to 32767
unsigned short: 0 to 65535
signed int: -32767 to 32767
unsigned int: 0 to 65535
signed long: -2147483647 to 2147483647
unsigned long: 0 to 4294967295
signed long long: -9223372036854775807 to 9223372036854775807
unsigned long long: 0 to 18446744073709551615
Ответ написан
Комментировать
@throughtheether
human after all
Они не идентичны (код на python 2.7).
>>> number1="bebb8568a63b1818"
>>> number2="bebb8568a63b1800"
>>> bin(int(number1,16))
'0b1011111010111011100001010110100010100110001110110001100000011000'
>>> bin(int(number2,16))
'0b1011111010111011100001010110100010100110001110110001100000000000'
>>>

Вы что-то сделали неправильно.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@subdan Автор вопроса
Всем спасибо. Я понял, что это из-за того, что двоичное число очень длинное и не помещается в int.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы