c++ - 左移/右移填充零/一并丢弃第一位

标签 c++ binary shift

我必须编写一个函数来接收

  • 10001这样的二进制数, 和
  • 一个十进制数,表示我应该轮类多少次。

问题是,如果我使用 C++ 运算符 << ,从后面推零,但不会丢弃第一个数字......例如

shifLeftAddingZeroes(10001,1)

返回 100010而不是 00010这就是我想要的。

我希望我已经说清楚了 =P

最佳答案

我假设您将该信息存储在 int 中。考虑到这个数字实际上比你看到的有更多的前导零,因此你的数字很可能是 16 位,意思是 00000000 00000001 。也许尝试使用与移位后想要的数字一样多的 1 对其进行 AND 运算? (假设您想坚持按位运算)。

关于c++ - 左移/右移填充零/一并丢弃第一位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15693966/

相关文章:

c++ - 为什么模板只能在头文件中实现?

java - 二进制搜索不适用于 double

c++ - 在 Ada95 中跨共享库/对象共享数据

C++循环堆栈分配

c++ - sizeof 操作数得到评估?

c++ - 在 C/C++ 中快速读取然后从二进制文件中添加大量整数

python - Python 如何推断二进制 NOT 中使用的位数?

rotation - Verilog 桶形移位器

powershell - 在powershell中迭代 "pseudo infinite"哈希值

c - C 中的按位移位