求教下面是怎么算的:char c1=3,c2=7; char c3=~c1^c2<<2; printf("%d",c3); 解是-32
求教下面是怎么算的:char c1=3,c2=7; char c3=~c1^c2<<2; printf("%d",c3); 解是-32
日期:2011-04-18 22:07:19 人气:3
c3=~c1^c2<<2
按照优先级,可以写成
c3 = (~c1)^(c2<<2)
= (~00000011) ^ (00000111<<2)
= 11111100 ^ 00011100
= 11100000
而11100000是16进制的0xe0,如果用%x的形式打印出来,就是要把11100000当作8bit的无符号数来看待结果就是e0。
如果用%d的形式打印出来,因为要把11100000当作8b