我必须将int向右移动一位并将其返回
在Java中我只能返回n>> 1;
这可能在C?
我们给出的方法如下
// Return n after a right circular 1-bit shift
unsigned int right_circular_shift_1(unsigned int n) {
答案 0 :(得分:10)
C没有循环移位,所以我想练习就是实现它。左循环移位的方法是:
- get the current leftmost bit and save it
- shift the number leftwards by one
- or the saved bit in at the rightmost bit position
正确的循环转变:
- get the current rightmost bit and save it
- shift the number rightwards by one
- or the saved bit in at the leftmost bit position
答案 1 :(得分:5)
你没试过吗?
n >> 1
这将在C(和其他基于C语言)中使用,就像在Java中一样(但不是循环的)。