Практический пример 32-разрядных разрядов без знака, со знаком, 64-разрядных - PullRequest
4 голосов
/ 14 августа 2010

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

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

Спасибо!

1 Ответ

3 голосов
/ 14 августа 2010

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

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

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

...