c - C - 步行一和零测试,通过进位旋转
问题描述
我是一名学生,在 C 语言上玩了几年,但没有稳定的时间练习这门语言。我正在尝试对一个字节执行步行和步行零测试并且非常卡住,任何提示将不胜感激。
我有两个问题。
1) 我如何进行零式行走?
2)如何在 C 中通过进位(或左)执行向右旋转?
我制定了一段步行代码,尽管这不会进行并在位 0 重新启动
int8_t walkOne = 1;
walkOne <<= 1;
零行走:??
我知道必须有更好的方法来做到这一点,有人可以帮忙吗?
问候
解决方案
C 不提供任何旋转操作。但是,您不需要一个。要为 step 准备walking-one 值i
,只需将a 逐i % 8
位移动:
uint8_t walkOne = 1u << i%8;
i%8
i
是除以八时的余数。
对于行走零点,补充模式:
uint8_t walkZero = ~(1u << i%8);
推荐阅读
- arrays - 如何计算重复并将它们显示为一个
- arrays - 排序数组列表的正确方法
- flutter - 我想从颤动中的以下数据中检索每个实体
- c++ - c++ openssl 1.1.1 在线程中运行 RSA 算法导致内存泄漏
- c# - 如何从保存在 SQL Server 数据库中的文件路径下载文件?
- datetime - Dax : LOD 提取最新值
- javascript - 如何根据角度环境更改 index.html 中的变量值
- python - 在 python 中使用 Lambda 函数优化多个 for 循环
- angularjs - ThreeJs OBJLoader 输出看起来非常像素化
- ruby-on-rails - 如何在rails控制器中使用redirect_to url运行js?