我必须编写一个函数来接收
- 像
10001
这样的二进制数, 和 - 一个十进制数,表示我应该轮类多少次。
问题是,如果我使用 C++ 运算符 <<
,从后面推零,但不会丢弃第一个数字......例如
shifLeftAddingZeroes(10001,1)
返回 100010
而不是 00010
这就是我想要的。
我希望我已经说清楚了 =P
最佳答案
我假设您将该信息存储在 int 中。考虑到这个数字实际上比你看到的有更多的前导零,因此你的数字很可能是 16 位,意思是 00000000 00000001
。也许尝试使用与移位后想要的数字一样多的 1 对其进行 AND 运算? (假设您想坚持按位运算)。
关于c++ - 左移/右移填充零/一并丢弃第一位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15693966/