求教下面是怎么算的:char c1=3,c2=7; char c3=~c1^c2<<2; printf("%d",c3); 解是-32

日期:2011-04-18 22:07:19 人气:3

求教下面是怎么算的:char c1=3,c2=7; char c3=~c1^c2<<2; printf("%d",c3); 解是-32

c3=~c1^c2<<2 按照优先级,可以写成 c3 = (~c1)^(c2<<2) = (~00000011) ^ (00000111<<2) = 11111100 ^ 00011100 = 11100000 而11100000是16进制的0xe0,如果用%x的形式打印出来,就是要把11100000当作8bit的无符号数来看待结果就是e0。 如果用%d的形式打印出来,因为要把11100000当作8b
    A+
热门评论