[二级C试题天天练]C语言考试试题10
21下面这个程序的作用是执行按位运算
main()
{
unsigned char a,b;
a=7^3;b = ~ 4 & 3;
printf("%d %d\n ",a,b);
}
程序运行后的输出结果是
A)4 3 B)7 3 C)7 0 D)4 0。
答案:a
解析:A = 7 3 = 111 11 = 100 = 4(十进制),b=~4&3=~100&11=11&11=11=3(十进制),所以
举例:12:00001100
& 10:00001010
结果:00001000
按位与运算特征:二进制
“按位异或”运算
异或运算的规则是:在参与运算的两个操作数对应的二进制位上,如果数字相同,则该位的结果为0;数字,这个位的结果是1。
例如:00110011
1100011
结果11110000
按位异或运算特点:数为1和1的位之间异或的结果为1,原本为0和1的位之间异或的结果为1;而0和0的XOR位的值不变。
“按位或”运算
按位或的运算规则是:只要对应的两个二进制位中有一位为1,则该位的运算结果为1;只有当两个对应位的数字都是0是的时候,这个位的结果才是0。
例如:0123:01010011
014:0001100
结果0123 | 014: 0101111
位运算的对象可以是整数,也可以是整数。当两个操作数的类型不同时,位数也会不一样。这种情况下,系统会自动进行如下处理:
(1)先对齐两个操作数的右端。
(2)将一个短数位的操作数扩展到一个高数位,即无符号数和正整数的左边用0补全;负数左边补1;然后,将两个位数相同的操作数进行位运算。
0条评论