如何补充具有前导零位的数值,以便前导零位保持为零,剩余的1位和0位将被补充?我想仅通过按位运算来执行此操作,而不必检查该值以确定该值中有多少前导零位.我可以使用哪些按位运算来仅隔离包含一个位或位打开的值的最低有效部分,并仅补充值的那部分,使前导零位保持不变.
例如,给出一个数字,比如9.
9将以无符号32位二进制形式表示为00 ... 01001.
为简单起见,请仅考虑8位形式.9 = 00001001
现在当我补充这个数字时,我会得到11110110.
但这不是我想要的.
我希望原始表示的前导0保持不变,并补充其余部分.
即对于9 = 00001001,前4个零应该保持为零,下一部分应该被称赞.所以我将有00000110即6.
我知道一个更长的方法:
bxb位要么
(0xFF<<b)从x