我正在学习位操作,我正在考虑一个问题,想要一些澄清
如果给类似0000111111111111;
我想要 2 个功能:
假设我从右到左读取索引并且索引从 1 开始,即索引 1-12 =1,索引 13,14,15,16 = 0
-
如果我想这样做,以便从左侧开始删除一个零
- 我
- 是否正确认为右移 1 会实现我想要的?
-
如果我想在左边添加一个零,所以它变成
0001111111111111
- 我该如何实现这一目标?
如果我想这样做,以便从左侧开始删除一个零 我是否正确认为右移 1 将实现 i 要?
答:No
。如果您right-shift
,则通过将所有位向右移动one
来更改数字,并且least significant bit
(最右侧的那个)从末尾掉下来:
0000011111111111;
如果我想在左边添加一个零,所以它变成0001111111111111 我该如何实现这一目标?
答:您left-shift
并添加1
:
0000111111111111; original
0001111111111110; left-shift
0001111111111111; +1