C-进行一次零测试,旋转进行进位

时间:2019-01-15 11:07:07

标签: c byte-shifting

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

我有两个问题。

1)我如何执行行走零点运动?

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

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

int8_t walkOne = 1;
walkOne <<= 1;

走零: ??

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

致谢

1 个答案:

答案 0 :(得分:0)

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

uint8_t walkOne = 1u << i%8;
i%8除以八时,

i是余数。

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

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