帮忙解决一道简单的c语言问题

main(){unsigneda=0112,x;x=a>>3;printf("x=%o",x)}答案是11,解释:右移高位补零。这个解释应该怎么理解... main()
{unsigned a=0112,x;
x=a>>3;
printf("x=%o",x)
}
答案是11,解释:右移高位补零。
这个解释应该怎么理解
展开
 我来答
百度网友23add4a
2008-03-12 · TA获得超过1039个赞
知道小有建树答主
回答量:595
采纳率:0%
帮助的人:921万
展开全部
>>右移操作就是把第一个操作数的二进制形式向右移动第二个操作数指定的位数,移出的位就舍去了
比如
int a=5; //5二进制形式为0101
int b=a>>1; //b的值是a向右移1位,变成了0010

看题,
a=0112; //这里0112是一个八进制表示的数,二进制形式为01001010
x=a>>3; //01001010右移3位变成了00001001,就是十进制的9
printf("x=%o",x); //用八进制打印,9的八进制形式为11,所以打印出来是11
lanyker
2008-03-12
知道答主
回答量:45
采纳率:0%
帮助的人:20.7万
展开全部
右移操作就是把一个二进制数向右移动。右移多少位它会把最右边多少位数舍去,而在左边补上0.
比如,十进制的239 就是二进制的11101111右移两位就变成00111011,再变成十进制就是59了
如果不会这些进制就找资料看,进制是基础
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式