已知chara=222执行语句a=a&052后,变量a的值是

如题,请给出详细过程,我算的结果老不对…

unsigned char a = 222;
00482795 mov byte ptr [a],0DEh
a = a & 052;
00482799 movzx eax,byte ptr [a]
0048279D and eax,2Ah
004827A0 mov byte ptr [a],al
从上面看出, 当编译器执行a = a & 052后, 实际传入的值是42(16进制), 而不是52(10进制).
1101 1110
& 0010 1010
------------
0000 1010 ---> 10(十进制)

所以,这个问题,归根结底,还是要看编译器的, 不同编译器, 对这个052理解是不同的.
温馨提示:答案为网友推荐,仅供参考
相似回答