向左/向右移动填充零/ 1并丢弃第一位

时间:2013-03-28 23:30:59

标签: c++ binary shift

我必须编写一个接收

的函数
  • 二进制数,如10001
  • 一个十进制数字,表示我应该执行多少班次。

问题在于,如果我使用C ++运算符<<,则从后面推出零但是第一个数字不会被删除...例如

  

shifLeftAddingZeroes(10001,1)

返回100010而不是我想要的00010

我希望我已经清楚了= P

1 个答案:

答案 0 :(得分:0)

我假设您将该信息存储在int中。考虑到这个数字实际上比你看到的更多的前导零,你的数字最有可能是16位,这意味着00000000 00000001。也许尝试用数字与你想要的数字1之后的数字进行对比? (假设你想坚持按位操作)。