C语言 如果所有低7位均已设置且未分支,则设置第8位

wrrgggsh  于 2023-11-17  发布在  其他
关注(0)|答案(1)|浏览(93)

我试图设置字节值中的最高位,只有当所有较低的7位都被设置而不引入分支时。
例如,给定以下输入:

input: 0b_0010_1100 -> return same value
input: 0b_0101_0101 -> return same value
input: 0b_0111_1111 -> all bits set except MSB, return 0xff
input: 0b_1010_1100 -> MSB is already set, return same value

字符串
这只需要对8位大小的值起作用。
我尝试了几次使用popcount,但这并不适用于所有输入。

mepcadol

mepcadol1#

怎么样:

return x | ((x+1) & 0x80);

字符串

相关问题