2010-08-14 3 views
3

Я довольно новый программист, и мне было интересно, может ли кто-нибудь дать мне практическое объяснение/пример различий и использования между работой с подписанными, неподписанными и 32-битными vs 64 бит?Практический пример 32-разрядных неподписанных, подписанных 64-разрядных разностей

В частности, я прочитал статью о том, как в прошлом году разработчики Twitter переключились на 64 бит, но я не был уверен в том, что касается его аргументации и специфики.

Спасибо!

ответ

2

Для n бит вы можете иметь 2^n разных чисел, представленных этими битами. Таким образом, 32-разрядные номера без знака идут от 0 до 4,294,967,295 (2^32-1, -1 - потому, что 0 - действительное число). Подписанные числа делят на 4 миллиарда равномерно между положительными и отрицательными. 32-разрядные компьютеры используют это в своих адресах памяти, что означает, что программа может получить доступ к 4 ГБ памяти. 64-разрядные компьютеры имеют предел 2^64, что намного, намного выше.

Вы также можете использовать это ограничение в 4 миллиарда, если вы используете 32-разрядные номера для представления других вещей, например, пользователей, твитов или секунд с определенной даты. Таким образом, 32-разрядная версия работает только до определенного масштаба, а затем выше, хотя есть способы обойти ограничения, имеет смысл перейти на 64-битный.

Недостатком является то, что для хранения ваших номеров требуется вдвое больше памяти.

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

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