C 语言中的位操作说明

  • 本文关键字:操作说明 语言 c bit
  • 更新时间 :
  • 英文 :


我正在学习位操作,我正在考虑一个问题,想要一些澄清

如果给类似0000111111111111;

我想要 2 个功能:

假设我从右到左读取索引并且索引从 1 开始,即索引 1-12 =1,索引 13,14,15,16 = 0

  1. 如果我想这样做,以便从左侧开始删除一个零

    • 是否正确认为右移 1 会实现我想要的?
  2. 如果我想在左边添加一个零,所以它变成0001111111111111

    • 我该如何实现这一目标?

如果我想这样做,以便从左侧开始删除一个零 我是否正确认为右移 1 将实现 i 要?

答:No。如果您right-shift,则通过将所有位向移动one来更改数字,并且least significant bit(最右侧的那个)从末尾掉下来:

0000011111111111;

如果我想在左边添加一个零,所以它变成0001111111111111 我该如何实现这一目标?

答:left-shift并添加1

0000111111111111;   original
0001111111111110;   left-shift
0001111111111111;   +1

最新更新