0x00000000十六进制?

时间:2012-03-02 20:24:12

标签: numbers hex

我一直被教导0-9表示0到9的值,A,B,C,D,E,F表示10-15。

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

我用Google搜索了十六进制,但我找不到任何解释。

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

5 个答案:

答案 0 :(得分:16)

0x只是告诉你十六进制后的数字

所以0x00是0,0x10是16,0x11是17等

答案 1 :(得分:10)

0x只是一个前缀(在C和许多其他编程语言中使用),表示以下数字位于16位。

用于十六进制的其他符号包括:

$ABCD
ABCDh
X'ABCD'
"ABCD"X

答案 2 :(得分:4)

是的,它是十六进制的。

否则,您无法代表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也是前缀。

答案 3 :(得分:3)

x之后的所有内容都是十六进制数字(0x只是指定十六进制的前缀),表示32位(如果您将二进制的0xFFFFFFFF放入,则为1111 1111 1111 1111 1111 1111 1111 1111)。

答案 4 :(得分:1)

十六进制数字通常以0x开头,表示它们是十六进制数字。 在这种情况下,有8个数字,每个数字代表4位,因此它是32位或一个字。我猜你在错误中看到了这个,它是一个内存地址。这个值意味着null,因为十六进制值是0.