C语言程序设计书上写以下代码让x只保留最低6位:x = x & ~077

将把X的后六位设置为0,可是077的二进制码为1001101,取反不是0110010么?怎么把X的后六位置0?... 将把X的后六位设置为0,可是077的二进制码为1001101,取反不是0110010么?怎么把X的后六位置0? 展开
 我来答
kaixingui2012
2015-01-06 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6448万
展开全部
077是8进制数换成二进制是00111111
让x只保留最低6位:x = x & ~077
不是让低6位全清0,而是低6位不变动,其它位全清0
百度网友2ebeb5c
2018-04-26
知道答主
回答量:5
采纳率:100%
帮助的人:1.8万
展开全部
  • 077是8进制数换成二进制是111 111 //不考虑补零。

//考虑也一样, 00111111,以一个字节为例, 取反 11000000

取反 000 000

  • x = x & ~077//很明确得题,x按位于 (~077)//按位求反077后的值

0&0=0

1&0=0

0&1=0

  • 所以是后六位设置为零! 因为不管本来的二进制是什么 & 后都是零。

  1. 因为按位于的对象是0

/*

x = x & 077 //这才是将6个低二进制位外的,全部设置为零。

*/

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式