0xNNNN
(необязательно четыре цифры) представляет, по крайней мере, в C, шестнадцатеричное (base-16, потому что «hex» равно 6, а «dec» равно 10 в латинских языках), где N
означает одна из цифр от 0
до 9
или A
до F
(или их строчные эквиваленты, представляющие от 10 до 15), и в числе может быть 1 или более из этих цифр. Другой способ представить это NNNN 16 .
Это очень полезно в компьютерном мире, так как одна шестнадцатеричная цифра представляет четыре бита (двоичные цифры). Это связано с тем, что четыре бита, каждый с двумя возможными значениями, дают в общей сложности 2 x 2 x 2 x 2
или 16
(2 4 ) значений. Другими словами:
_____________________________________bits____________________________________
/ \
+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
| bF | bE | bD | bC | bB | bA | b9 | b8 | b7 | b6 | b5 | b4 | b3 | b2 | b1 | b0 |
+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
\_________________/ \_________________/ \_________________/ \_________________/
Hex digit Hex digit Hex digit Hex digit
Число base-X - это число, где каждая позиция представляет собой кратное степени X.
В базе 10, к которой мы, люди, привыкли, используются цифры от 0
до 9
, а число 7304 10 равно:
- (7 x 10 3 ) = 7000 10 ; плюс
- (3 х 10 2 ) = 300 10 ; плюс
- (0 x 10 1 ) = 0 10 ; плюс
- (4 x 10 0 ) = 4 10 ; равно 7304.
В восьмеричном, где цифры от 0
до 7
. номер 754 8 равен:
- (7 x 8 2 ) = 448 10 ; плюс
- (5 х 8 1 ) = 40 10 ; плюс
- (4 x 8 0 ) = 4 10 ; равняется 492 10 .
Восьмеричным числам в C предшествует символ 0
, поэтому 0123
- это не 123, а вместо этого (1 * 64) + (2 * 8) + 3 или 83.
В двоичном коде, где цифры 0
и 1
. номер 1011 2 равен:
- (1 х 2 3 ) = 8 10 ; плюс
- (0 x 2 2 ) = 0 10 ; плюс
- (1 х 2 1 ) = 2 10 ; плюс
- (1 х 2 0 ) = 1 10 ; равно 11 10 .
В шестнадцатеричном формате, где цифры от 0
до 9
и A
до F
(которые представляют собой "цифры" 10
до 15
). номер 7F24 16 равен:
- (7 х 16 3 ) = 28672 10 ; плюс
- (F x 16 2 ) = 3840 10 ; плюс
- (2 х 16 1 ) = 32 10 ; плюс
- (4 х 16 0 ) = 4 10 ; равно 32548 10 .
Ваше относительно простое число 0x10
, которое C обозначает 10 16 , просто:
- (1 х 16 1 ) = 16 10 ; плюс
- (0 х 16 0 ) = 0 10 ; равно 16 10 .
Кроме того, разные базы чисел используются для многих вещей.
- основание 10, как уже упоминалось ранее, используется нами, людьми с 10 цифрами на руках.
- база 2 используется компьютерами из-за относительной простоты представления двух двоичных состояний с помощью электрических цепей.
- base 8 используется почти исключительно в разрешениях файла UNIX, так что каждая восьмеричная цифра представляет собой три набора двоичных разрешений (чтение / запись / выполнение). Он также используется в языках на основе C и в утилитах UNIX для ввода двоичных символов в поток данных, который можно печатать только для символов.
- основание 16 - это удобный способ представления четырех битов в цифре, тем более что в настоящее время большинство архитектур имеют размер слова, кратный четырем битам.
- base 64 используется для кодирования почты, поэтому двоичные файлы могут быть отправлены только с использованием печатаемых символов. Каждая цифра представляет шесть двоичных цифр, поэтому вы можете упаковать три восьмибитных символа в четыре шестибитные цифры (размер файла увеличился на 25%, но гарантированно не будет затронут почтовые шлюзы).
- как полу-полезный фрагмент, база 60 происходит от очень древней цивилизации (Вавилон, Шумер, Месопотамия или что-то в этом роде) и является источником 60 секунд / минут в минуту / час, 360 градусов по кругу, 60 минут (по дуге) и т. Д. [На самом деле не связаны с компьютерной индустрией, но тем не менее интересны].
- как еще менее полезный фрагмент, последний вопрос и ответ в Справочнике автостопом по галактике было «Что вы получите, когда умножите 6 на 9?» и "42". Хотя то же самое говорят, что это потому, что компьютер Земли был неисправен, другие видят в этом доказательство того, что у создателя 13 пальцев: -)