printf("%d \n",12 &012)
语句:printf("%d \n",12 &012);的输出结果是8谁能给我解释下,这个“8”是怎么来的~~~~
参考答案:12 & 012 就是12和10进行按位与运算(012是八进制12),也就是:
(二进制数)1100 & 1010 = 1000
即8。
问题补充的程序有问题。
char类型的长度是一个字节,而0xffff已经是两个字节了。应该是0xff吧?printf("%d \n",x--)函数参数首先传递的是x--这个,但是它是先返回值才减小,因此x传递过去时候仍然是0xff。
0xff当作为无符号数的时候,数字为255,作为带符号数时候,是-1。char类型是带符号的,因此是-1。