我有以下代码:
SN.get_Chars(5)
Run Code Online (Sandbox Code Playgroud)
SN是一个字符串所以这应该给第五个字符.好!
现在我有另一个代码但是: SN.get_Chars(0x10)
我想知道0x10是什么?这是一个数字吗?如果是这样,那么十进制表示法是什么?
pax*_*blo 86
0xNNNN(不一定是四位数)在C中至少表示十六进制(base-16因为'hex'是6而'dec'在拉丁语派生语言中是10)数字,其中N是0通过9或A通过的数字之一F(或它们的小写等价物,代表10到15),并且数字中可能有1个或多个这些数字.表示它的另一种方式是NNNN 16.
它在计算机领域非常有用,因为单个十六进制数字代表四位(二进制数字).这是因为四个位,每个位有两个可能的值,总共给出2 x 2 x 2 x 2或16(2 4)个值.换一种说法:
_____________________________________bits____________________________________
/ \
+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
| bF | bE | bD | bC | bB | bA | b9 | b8 | b7 | b6 | b5 | b4 | b3 | b2 | b1 | b0 |
+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
\_________________/ \_________________/ \_________________/ \_________________/
Hex digit Hex digit Hex digit Hex digit
Run Code Online (Sandbox Code Playgroud)
base-X数是一个数字,其中每个位置代表X的幂的倍数.
在我们人类习惯的基数10中,使用的数字是0通过的9,数字7304 10是:
在八进制中,数字0通过7.数字754 8是:
C中的八进制数字前面是字符,0因此0123不是123,而是(1*64)+(2*8)+ 3或83.
在二进制中,数字是0和1.号码1011 2是:
在十六进制中,数字是0通过9和A通过F(表示"数字" 10通过15).数字7F24 16是:
你的相对简单的数字0x10,即C代表10 16的方式,就是:
另外,数字的不同基数用于许多事情.
因此您计算的值位于前缀之后,在本例中为 10。
但这不是数字 10。最高有效位1表示十六进制值,而0表示单位。
所以你要做的简单数学是
0x10
1 * 16 + 0 = 16
Run Code Online (Sandbox Code Playgroud)
注意 - 您使用 16,因为十六进制是以 16 为基数。
另一个例子:
0xF7
15 * 16 + 7 = 247
Run Code Online (Sandbox Code Playgroud)
您可以通过搜索十六进制表来获取值列表。例如,在此图表中,注意 F 对应于 15。