2012-03-02 306 views
9

我总是教0-9代表0到9的数值,A,B,C,D,E,F代表10-15。0x00000000十六进制?

我看到这种格式0x00000000,它不适合十六进制的模式。有没有可以解释它的指导或导师?

我google了十六进制,但我找不到任何解释。

所以我的第二个问题是,是否有一个名称为0x00000000格式?

+2

'0x0000'是一个十六进制数字。 '0x'表示它应该以16进制计算而不是10进制。没有它,你不知道15是十进制还是十六进制(或八进制)。那是你想知道的吗? – 2012-03-02 20:28:03

+0

是否有一个特定格式的名称,或者我必须在谷歌键入十六进制希望格式将显示? – nhat 2012-03-02 20:38:49

+1

@nhat'0x'是一个标准的十六进制前缀,它只是告诉你下面的数字将以十六进制表示。谷歌搜索不应该是必要的(只是采取你知道的十六进制,并记住该前缀) – jzworkman 2012-03-02 20:56:18

回答

12

0X简单地告诉你号码后它会在十六进制

所以0x00为0,0x10的是16,0×11是17等

+0

好吧,如果它走了1秒,为什么0x0080 = 128? – nhat 2012-03-02 20:47:07

+0

@nhat它不去,每个地方的因素是16,所以你的情况是8 * 16或128,因为8是在16的地方。 – jzworkman 2012-03-02 20:49:15

+0

我注意到0x00000080 = 0x0080。格式化让我感到困惑,但在看了这些之后,它开始变得更有意义。 – nhat 2012-03-05 14:56:42

9

0x只是一个前缀(在C和许多其他的编程语言中使用)来表示,以下数目是在基座16已被用于十六进制

其它符号包括:

$ABCD 
ABCDh 
X'ABCD' 
"ABCD"X 
+0

很酷,感谢您的信息。从未看过这些格式。有没有从你那里学到的特定网站? – nhat 2012-03-02 20:40:44

+0

在那里甚至有互联网之前,我曾与*所有*这些符号。所以,没有特定的网站。 – 2012-03-02 20:43:54

+1

哈哈酷很感谢! – nhat 2012-03-02 20:50:13

1

十六进制数字s通常以0x开头,表示它们是十六进制数字。 在这种情况下,有8位数字,每个数字代表4位,所以它是32位或一个字。我“猜你在一个错误看到这个,这是一个内存地址。这个值是指空,为十六进制值是x 0后

3

一切是十六进制数字(在0X只是指定一个前缀十六进制),代表32位(如果你把0xFFFFFFFF的二进制,这将是1111 1111 1111 1111 1111 1111 1111 1111)。

3

是的,这是十六进制数。

否则,你不能代表例如:A,C和Java的编译器会把它当作变量标识符,添加的前缀0x告诉编译器它是十六进制数,所以:

int ten_i = 10; 
int ten_h = 0xA; 

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

的前导零指示大小0x0080暗示数将被存储在字节;和0x00000080代表四个字节。这种标记通常用于标记:如果设置了某个位,则启用该功能。

P.S.作为一个离题话单:如果号码以0开头,则它被解释为八进制数字,例如010 == 8。这里0也是一个前缀。