计算机二级C题目,,,设x=061,y=016,则z=x|y的值是

A 00001111
B 11111111
C 00111111
D 11000000
答案是C 可我算的是00111101 这是为什么啊????

x=061,y=016,两数都是8进制,先转换成2进制,x=00110001,y=000001110,z=x|y就是x与y按位或的结果,根据按位或全0才0,其余取1的原则,z=00111111,选C。你算出来00111101,估计是在8进制转2进制的时候算错了,不妨再试试,以免以后再出现类似失误。
8进制转2进制最简单的就是直接转换,x=061,8是2的3次方,所以每一位八进制数都能转成3位2进制数,6转成110,1转成001,所以x=00110001,同理得y=00001110,z=00111111。
还可以先将8进制数转成10进制数,再将10进制数转成2进制数,x=061,十进制,x=6*8+1=49=32+16+1,2进制x=00110001.同理得出y=00001110,z=00111111。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-08-22
C语言的规则,0开头的整形常数就是8进制。
题目是按照8进制计算的,061对应的二进制:00110001,016对应二进制:00001110
所以结果是C 00111111本回答被提问者采纳
第2个回答  2014-08-27
用按位或运算将指定的位置为1
设:x=061,y=016,则z=x|y为:
x: 0000,0000,0011,0001
| y: 0000,0000,0000,1110
z: 0000,0000,0011,1111

即将x或y中为1的位的相应位置成1,其结果是z中的后6位为1
希望对你能有所帮助。