在下面给出的程序中,
void main()
{
int x=0xFE;
int y=0xF3;
.....
}
x=0xFE
和y=0xF3
分配了哪些值? 0x
代表什么?
答案 0 :(得分:15)
之前用0x
写一个值意味着它是用hexadecimal notation写的,其中数字0-9和附加“数字”AF用于获得一个带有16的数字系统。这样做的好处是每个十六进制数字恰好代表4位。
0xFE = 254
0xF3 = 243
所以x = 254,y = 243。
答案 1 :(得分:6)
数字可以用不同的方式表示。在C中,您可以使用十进制(例如243),八进制(例如0363)或十六进制(0xF3)。
如果你写243,你的意思是
243 = 2*10^2 + 4*10^1 + 3*10^0 = 2*100 + 4*10 + 3 = 243
其中^
表示“以权力为中心”。这意味着我们的正常数字是基数10或十进制数。十六进制使用基数16,数字为0123456789ABCDEF
,其中0 = 0,... 9 = 9,A = 10,B = 11,... F = 15。所以243也可以写成
0xF3 = 15*16^1 + 3*16^0 = 15*16 + 3 = 243
这就是你所看到的。换句话说,0xF3只是写入243的另一种方式,而0xFE是写入254的另一种方式(15 * 16 + 14 = 254)。
优点是每个十六进制数字代表4位,因此可以使用2个十六进制数字来显示字节。如果你知道0x0是二进制的0000,依此类推,最多为0xF,即二进制的1111,有经验的用户可以很容易地“看到”一个字节中的位。
FWIW,八进制位于8位,因此唯一的数字是01234567.我总是觉得使用它有点尴尬。
答案 2 :(得分:2)
这些值是十六进制的,因为它们前面是0x标识符。 要转换这些值,您可以在程序员模式或谷歌上使用计算器计算器。 http://screensnapr.com/v/aQEPYk.png