bit-manipulation - 使用位操作的位掩码 &
问题描述
我的教科书说
“按位与运算符 & 通常用于屏蔽某些位集,例如 n = n & 0177;除了 n 的低 7 位之外,所有位都设置为零。”
但是,根据我的理解,0177 的二进制形式是 101010001,所以操作 n =n & 0177 应该保留 n 的第 1、5、7 和 9 位,并将所有其他位设置为零。
谁能指出我理解这一点的错误在哪里?
解决方案
除了 0177 的二进制表示之外,我相信您的理解是正确的。如果这是一个十进制数,它将是 01111111,如果它是十六进制(我怀疑它是),不要忘记 0x 前缀!然后是 101110111 所以它会保留不同的位。不确定你从哪里得到 101010001。如果这没有意义,请告诉我。
推荐阅读
- .net - 在 {x:Bind} 中将 Double 值强制转换为 Single
- r - 尝试将列的值舍入到 R 中最接近的值时出错
- javascript - 裁剪图像时,新图像获取canvas padding fabric js
- html - 滚动时如何更改文本的颜色?
- pine-script - 使用 Tradingview 技术信号的 Tradingview 警报
- docker - docker中的redis集群为我自己报告docker0地址
- python - 如何在 django 中从多到多相关类中进行选择字段?
- ms-access - Microsoft Access - 对多个查询使用一个报告模板?
- karma-webpack - 当我在我的 Angular 项目中运行 npm run test 时,我得到了这个 RangeError:
- android - setMinimumFetchIntervalInSeconds 和 fetch(long minimumFetchIntervalInSeconds) 之间的确切区别是什么