Как этот адрес (0x00000400) = 1024 - PullRequest
       5

Как этот адрес (0x00000400) = 1024

4 голосов
/ 08 сентября 2010

Я работаю в C ++, и у меня есть #define VAL 0x00000400. когда я устанавливаю переменную, равную define: int value = VAL; когда я бегу через отладчик, показывает значение переменной = 1024. Может кто-нибудь объяснить, как это превращается в 1024? Может быть, некоторые ссылки на информацию об адресе памяти, #define info, или что-то релевантное.

Ответы [ 7 ]

10 голосов
/ 08 сентября 2010

0x00000400 - это база 16 для 1024. Ваш отладчик показывает целочисленное значение в базе 10.

8 голосов
/ 08 сентября 2010

"0x400" равно шестнадцатеричное , или основание 16. 0x400, выраженное в десятичном виде (основание 10), равно 1024.

Кстати, вы можете использовать Google для базовых преобразований.Ищите "0x400 в десятичном виде" , и Google даст вам ответ.

3 голосов
/ 08 сентября 2010

Кроме того, преобразование из 0x400 (база 16) в базу 10:

4*16^2 + 0*16^1 + 0*16^0
4*16^2 + 0 + 0
4*256
1024
3 голосов
/ 08 сентября 2010

0x400 - шестнадцатеричное число (обозначается префиксом 0x.) Это еще один способ представления десятичного числа 1024.

3 голосов
/ 08 сентября 2010

1024 в десятичном виде = 400 в шестнадцатеричном.

3 голосов
/ 08 сентября 2010

0x00000400 - это 400 оснований 16, что составляет 1024 оснований 10.

0 голосов
/ 08 сентября 2010

хорошо, я не видел ваш код, но 400h = 1024 десятичных, и вы указываете, что целое число 'int value = VAL' компилятор просто не отображает никаких уведомлений / предупреждений, он выполняет приведение для вас

...