Что такое 0x10 в десятичную?
У меня есть следующий код:
SN.get_Chars (5)
SN-строка, поэтому это должно дать 5-й символ ОК!
теперь у меня есть другой код, но: SN.get_Chars (0x10)
интересно, что такое 0x10? Это число? Если это так, то что это в десятичной системе счисления?
5 ответов
0x означает, что число шестнадцатеричное, или основание 16.
0x10 равно 16.
0xNNNN
(Не обязательно четыре цифры) представляет собой, по крайней мере, в C шестнадцатеричное (база-16, потому что " hex "-6, а " dec " - 10 в латинских языках) число, где N
- один из знаков 0
через 9
или A
через F
(или их эквиваленты в нижнем регистре, либо представляющие от 10 до 15), и может быть 1 или более из этих цифр в номере. Другой способ представления - NNNN16.
это очень полезно в компьютерный мир как одна шестнадцатеричная цифра представляет собой четыре бита (двоичные цифры). Это потому, что четыре бита, каждый с двумя возможными значениями, дают вам в общей сложности 2 x 2 x 2 x 2
или 16
(24) значений. Другими словами:
_____________________________________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
, и число 730410 есть:
- (7 x 103) = 700010 и
- (3 x 102) = 30010 и
- (0 x 101) = 010 и
- (4 x 100) = 410 ; равно 7304.
в восьмеричном, где цифры 0
через 7
. число 7548 есть:
- (7 x 82) = 44810 и
- (5 x 81) = 4010 и
- (4 x 80) = 410 ; равна 49210.
Восьмеричные числа в C предшествуют символу 0
так 0123
не 123, а (1 * 64) + (2 * 8) + 3, или 83.
в двоичном формате, где цифры 0
и 1
. число 10112 - это:
- (1 x 23) = 810 и
- (0 x 22) = 010 и
- (1 x 21) = 210 и
- (1 x 20) = 110 ; равен 1110.
в шестнадцатеричном формате, где цифры 0
через 9
и A
через F
(которые представляют собой "знаков" 10
через 15
). количество 7F2416 - это:
- (7 x 163) = 2867210 и
- (F x 162) = 384010 и
- (2 x 161) = 3210 и
- (4 x 160) = 410 ; равно 3254810.
ваш относительно простой номер 0x10
, таким образом, C представляет 1016 просто:
- (1 x 161) = 1610 и
- (0 x 160) = 010 ; равна 1610.
в стороне, различные базы чисел используются для многих вещей.
- базовый 10 является , как уже упоминалось ранее, мы люди с 10 цифрами на руках.
- основание 2 использовано компьютерами должными к относительной легкости представлять 2 бинарных положения с электрическими цепями.
- base 8 используется почти исключительно в разрешениях файлов UNIX, так что каждая восьмеричная цифра представляет собой 3-кортеж двоичных разрешений (чтение/запись/выполнение). Он также используется в языках на основе C и утилит UNIX для ввода двоичных символов в Иначе печатаемый символ только поток данных.
- base 16-удобный способ представить четыре бита в цифру, тем более, что большинство архитектур в настоящее время имеют размер слова, кратный четырем битам.
- base 64 используется в кодировке почты, так что двоичные файлы могут быть отправлены с использованием только печатаемых символов. Каждая цифра представляет собой шесть двоичных цифр, поэтому вы можете упаковать три восьмиразрядных символа в четыре шестиразрядные цифры (25% увеличенный размер файла, но гарантированно пройти через почтовые шлюзы нетронутый.)
- как еще менее полезный фрагмент, окончательный вопрос и ответ в Автостопом По Галактика!--197--> "что получится, если умножить 6 на 9?"и "42". Хотя то же самое говорят, что это потому, что земной компьютер был неисправен, другие видят это как доказательство того, что у создателя есть 13 пальцев: -)
обратите внимание, что "10" является представлением базы в этой базе:
10 равно 2 (десятичный) в базе-2
10 в 3(в десятичной системе) в База-3
...
10 - это 10 (десятичный) в базе-10
...
10 - 16 (десятичный) в базе-16 (шестнадцатеричный)
...
10-1024 (десятичный) в базе-1024
...и так далее
простая версия 0x-это префикс, обозначающий шестнадцатеричное число,источник.
таким образом, значение, которое вы вычисляете, является после префикс, в данном случае 10.
но это не число 10. Самый значительный бит 1
обозначает шестнадцатеричное значение while 0
обозначает единицы.
таким образом, простая математика, которую вы бы сделали, это
0x10
1 * 16 + 0 = 16
Примечание-Вы используете 16, потому что hex основание 16.
еще пример:
0xF7
15 * 16 + 7 = 247
вы можете получить список значений, выполнив поиск шестнадцатеричной таблицы. Например, в этом диаграммы Примечание F соответствует 15.