0x00000000 шестнадцатеричный? - PullRequest
12 голосов
/ 03 марта 2012

Меня всегда учили 0–9 представлять значения от нуля до девяти, а A, B, C, D, E, F для 10-15.

Я вижу этот формат 0x00000000, и он не 'т вписывается в шестнадцатеричный шаблон.Есть ли где-нибудь руководство или репетитор, который может это объяснить?

Я гуглил шестнадцатеричное число, но не могу найти объяснения этому.

Итак, мой второй вопрос: есть ли имя?для формата 0x00000000?

Ответы [ 5 ]

17 голосов
/ 03 марта 2012

0x просто говорит вам число после того, как оно будет в шестнадцатеричном

, поэтому 0x00 - это 0, 0x10 - это 16, 0x11 - это 17 и т. Д.

12 голосов
/ 03 марта 2012

0x - это просто префикс (используется в C и многих других языках программирования) для обозначения следующего числа в базе 16.

Другие обозначения, которые использовались для шестнадцатеричного числа, включают:

$ABCD
ABCDh
X'ABCD'
"ABCD"X
5 голосов
/ 03 марта 2012

Да, это шестнадцатеричное число.

В противном случае вы не можете, например, представить A.Компилятор для C и Java будет обрабатывать его как идентификатор переменной.Добавленный префикс 0x сообщает компилятору, что это шестнадцатеричное число, поэтому:

int ten_i = 10;
int ten_h = 0xA;

ten_i == ten_h; // this boolean expression is true

Первые нули указывают размер : 0x0080 подсказки, что число будет сохранено в два байта;и 0x00000080 представляет четыре байта.Такое обозначение часто используется для флагов: если установлен определенный бит, эта функция включена.

PS. Примечание не по теме: если число начинается с 0, то оно интерпретируется как восьмеричное число,например 010 == 8.Здесь 0 также является префиксом.

4 голосов
/ 03 марта 2012

Все после x - это шестнадцатеричные цифры (0x - это просто префикс для обозначения шестнадцатеричного числа), представляющий 32 бита (если вы поместите 0xFFFFFFFF в двоичном виде, это будет 1111 1111 1111 1111 1111 1111 1111 1111). *

1 голос
/ 03 марта 2012

шестнадцатеричные цифры часто начинаются с 0x, чтобы указать, что они являются шестнадцатеричными цифрами. В этом случае есть 8 цифр, каждая из которых представляет 4 бита, то есть 32 бита или слово. Я предполагаю, что вы видели это по ошибке, и это адрес памяти. Это значение означает ноль, поскольку шестнадцатеричное значение равно 0.

...