[二级C试题天天练]C语言考试试题10 |
|
www.nanhushi.com 佚名 不详 |
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(十进制),所以答案为a “按位与”运算 运算符作用:把参加运算的两个运算数,按对应的二进制位分别进行“与”运算,当两个相应的位都为1时,该位的结果为1,否则为0。 如: 12 : 00001100 & 10 : 00001010 结果 : 00001000 按位“与”运算特征:任何位上的二进制数,只要和0“与”,该位即被屏蔽(清零);和1“与”,该位保留原值不变。 “按位异或”运算 异或运算的规则是:参与运算的两个运算数中相对应的二进制位上,若数相同,则该位的结果为0;数不同,则该位的结果为1。 如: 00110011 ^ 11000011 结果 11110000 “按位异或”运算特征:数为1的位和1“异或”结果为1,原为0的位和1“异或”结果就为1;而和0“异或”的位其值均未变。 “按位或”运算 按位或的运算规则是:参加运算的两个运算数中,只要两个相应的二进制位中有一个为1,该位的运算结果即为1;只有当两个相应位的数都为0是,该位的运算结果才为0。 如: 0123 : 01010011 014 : 00001100 结果 0123| 014 : 01011111 位数不同的运算数之间的运算规则 位运算的对象可以是整型和字符型数据。当两个运算数类型不同时位数亦会不同。遇到这种情况,系统将自动进行如下处理: (1) 先将两个运算数右端对齐。 (2) 再将位数短的一个运算数往高位扩充,即:无符号数和正整数左侧用0补全;负数左侧用1补全;然后对位数相等的这两个运算数,按位进行位运算。
|
|
|
文章录入:杜斌 责任编辑:杜斌 |
|
上一篇文章: [二级C试题天天练]C语言考试试题9 下一篇文章: [二级C试题天天练]上机填空 |
【字体:小 大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |
|
|