printf("%d \n",12 &012)

如题所述

第1个回答  2019-12-03
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。
第2个回答  2019-06-01
问题补充的程序有问题;;%d
\。
0xff当作为无符号数的时候;n"。char类型是带符号的,也就是。应该是0xff吧,因此x传递过去时候仍然是0xff,是-1,而0xffff已经是两个字节了,作为带符号数时候,因此是-1:
(二进制数)1100
&
1010
=
1000
即8。
char类型的长度是一个字节,但是它是先返回值才减小,数字为255?printf(",x--)函数参数首先传递的是x--这个12
&
012
就是12和10进行按位与运算(012是八进制12)
相似回答