例如,当我有一个二进制数字,例如0x54,那将是01010100。使用按位运算符">>"后,此数字将变为00101010。而不是最高有效位是 0,我需要它是一个 1。我怎样才能做到这一点?
你的数字总是 8 位宽吗?如果是这种情况,您可以简单地使用十进制表示形式 10000000,即 128 并按位或 所以让我们以你为例
int val = 84; /// 01010100
int newVal = val >> 1; // 00101010
int mostSig = newVal | 128; // 10101010