Что такое 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 пальцев: -)

Это шестнадцатеричное число и 16 десятичных знаков.


обратите внимание, что "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.