java - 使用'>>'将int向右移动后如何将最高有效位更改为1?
问题描述
例如,当我有一个数字,例如 0x54 二进制时,它将是 01010100。使用按位运算符“>>”后,这个数字将变成 00101010。最高有效位不是 0,而是我需要它成为一个。我怎样才能做到这一点?
解决方案
你的号码总是 8 位宽吗?如果是这种情况,您可以简单地使用 10000000 的十进制表示,即 128 并按位执行,让我们举个例子
int val = 84; /// 01010100
int newVal = val >> 1; // 00101010
int mostSig = newVal | 128; // 10101010
推荐阅读
- reactjs - React with Redux Saga - How to get data back from axios call
- java - Ford Fulkerson 有向图权重
- visual-studio-code - 无法摆脱缩进线
- javascript - JavaScript .click() 不能在启用 CloudFlare 的情况下工作
- python - python脚本中缺少点
- javascript - 搜索框中的 Javascript
- javascript - Highlight Undefined Javascript Variables in Visual Studio Code
- animation - chart.js update() 函数无法正常工作
- java - 如何在带有三元运算符的java中使用'super'调用基类的重载参数化构造函数?
- tcl - 如何增加 tcl shell 的命令历史记录大小