0xFE在C程序中意味着什么?

时间:2011-08-07 17:03:11

标签: c

在下面给出的程序中,

void main()
{

       int x=0xFE;

       int y=0xF3;
      .....
}

x=0xFEy=0xF3分配了哪些值? 0x代表什么?

3 个答案:

答案 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