binary - 我怎样才能位移一个 0 位?
问题描述
我正在尝试按顺序像这样进行位移。是否有逻辑操作可以帮助我做到这一点?
0111 1111
1011 1111
1101 1111
1110 1111
1111 0111
1111 1011
1111 1101
1111 1110
对于十六进制,它将是
0x7F
0xBF
0xDF
0xEF
0xF7
0xFB
0xFD
0xFE
解决方案
试试这个 8 位数字(示例适用于 Java,也可能对 С 有帮助)
value = ((value >> 1) & 0x7F) | 0x80
而这个用于零的反向传播
value = ((value << 1) | 1) & 0xFF
推荐阅读
- bash - 仅通过合并基础和合并提交过滤 git 日志
- asp.net-core - Asp.net core blazor web 程序集示例项目不工作
- python - 将二维 numpy 数组切片成更小的方块的 Pythonic 方法
- c# - 不确定 System.NullRefrenceException 试图告诉我什么
- vb.net - 如何将 sqlite 文件复制到其他驱动器?
- autodesk-forge - 有没有办法提高 Forge Viewer 的性能
- mysql - IF Else count(*) in MySQL query?
- odoo - How to save One2many fields values?
- javascript - Typescript 中的插件加载器
- html - 如何将您的 iframe 定位为低于其他(并排)?