我是一名学生,花了几年时间学习C语言,但是没有足够的实践语言的时间。我正在尝试对一个字节执行步进1和步进零测试,并且非常卡住,任何提示将不胜感激。

我有两个问题。

1)我如何执行零走行?

2)如何在C中通过进位(或向左)向右旋转?

我算出了一点点代码,尽管它没有回合并从位0重新开始

int8_t walkOne = 1;
walkOne <<= 1;


零走:
??

我知道一定有更好的方法可以做到这一点吗?

问候

最佳答案

C不提供任何旋转操作。但是,您不需要这样做。要为步骤i准备行走一的值,只需将一位移位i % 8位即可:

uint8_t walkOne = 1u << i%8;


i%8除以8时,i是余数。

对于行走零点,请补充模式:

uint8_t walkZero = ~(1u << i%8);

10-04 13:52