我一直被教导0-9代表零至九的值,A、B、C、D、E、F代表10-15。
我看到了这种格式0x00000000,它似乎不符合十六进制的规律。是否有指南或导师可以解释一下?
我搜索了十六进制的资料,但找不到任何解释。
因此我的第二个问题是,0x00000000格式有没有名称?
0x只是告诉你后面的数字将以十六进制表示
所以0x00表示0,0x10表示16,0x11表示17等等
0x
只是一个前缀(在 C 和许多其他编程语言中使用),表示以下数字是以 16 进制为基数。
其他用于十六进制的符号包括:
$ABCD
ABCDh
X'ABCD'
"ABCD"X
$
开头的内容视为变量,而不是十六进制值。 - Arjan是的,这是十六进制。
否则,例如无法表示A
。 C和Java编译器将把它视为变量标识符。添加前缀0x
告诉编译器它是一个十六进制数,因此:
int ten_i = 10;
int ten_h = 0xA;
ten_i == ten_h; // this boolean expression is true
在x之后的所有内容都是十六进制数字(0x只是前缀,表示十六进制),代表32位(如果您将0xFFFFFFFF转换为二进制,则为1111 1111 1111 1111 1111 1111 1111 1111)。
十六进制数字通常以0x为前缀表示它们是十六进制数字。 在这种情况下,有8个数字,每个数字代表4位,因此是32位或一个字。我猜你在错误中看到了这个值,它是一个内存地址。这个值意味着空,因为十六进制值为0。
0x0000
是一个十六进制数。前缀0x
表示该数应该使用十六进制而不是十进制进行计算。如果没有这个前缀,你就无法知道15
是十进制还是十六进制(或八进制)。这是你所想要知道的内容吗? - Felix Kling0x
是标准的十六进制前缀,它只是告诉你接下来的数字将是十六进制。不需要进行谷歌搜索(只需利用您对十六进制的了解并记住该前缀即可)。 - jzworkman