我是一名学生,花了几年时间学习C语言,但是没有足够的语言练习时间。我正在尝试对一个字节执行步行1和步行零测试,并且非常卡住,任何提示将不胜感激。
我有两个问题。
1)我如何执行行走零点运动?
2)如何在C中通过进位(或向左)进行右旋转?
我算出了一小段代码,尽管它没有回合并从第0位重新开始
int8_t walkOne = 1;
walkOne <<= 1;
走零: ??
我知道必须有更好的方法可以做到这一点吗?
致谢
答案 0 :(得分:0)
C不提供任何旋转操作。但是,您不需要这样做。要为步骤i
准备步行值,只需将i % 8
位移动一位:
uint8_t walkOne = 1u << i%8;
当i%8
除以八时, i
是余数。
对于行走零点,请补充模式:
uint8_t walkZero = ~(1u << i%8);