“|” “^”搞不懂,怎算出结果的
#include<stdio.h>int main(void)
{
int a,b;
a=077;
b=a^3;
printf("\40 :The a&b(decimal)is %d\n",b);
b^=7;
printf("\40 :The a&b(decimal)is %d\n",b);
return 0;
}
~
~
~
~
~
:The a&b(decimal)is 60
:The a&b(decimal)is 59 a=077;
在整数常量前面加上前缀 0 ,表示它是八进制整数 本帖最后由 jackz007 于 2022-5-16 22:57 编辑
077是八进制 77,用二进制表达是0011 1111,3 的 二进制形式是 0011。
^ 是二进制异或运算,规则是,如果参与运算的两个二进制位相等,则该位的运算结果是 0,否则,是 1
077 ^ 3
就是
0011 1111
0000 0011
0011 1100
结果是 0011 1100,八进制值是 074,十六进制值是 0x3c,十进制值是 60
| 是二进制或运算,规则是,如果参与运算的两个二进制位中有一方(或两方)为 1,则该位的运算结果为 1,否则,为 0
077 | 3
就是
0011 1111
0000 0011
0011 1111
结果是0011 1111,八进制是 077,十六进制是 0x3f,十进制是 63
页:
[1]