小编NT9*_*T93的帖子

按位向右旋转4位值

我正在尝试使用简单的完整步骤来控制步进电机.这意味着我正在输出一系列值,如下所示:

1000
0100
0010
0001
Run Code Online (Sandbox Code Playgroud)

我认为一个简单的方法是只取我的4位值,然后在每一步之后执行右旋操作."代码"显然不遵循任何语法,它只是用来说明我的想法:

step = 1000;
//Looping
Motor_Out(step)
//Rotate my step variable right by 1 bit
Rotate_Right(step, 1)
Run Code Online (Sandbox Code Playgroud)

我的问题是,显然我没有任何4位简单数据类型可以用于此,如果我使用8位无符号整数,我最终将1关闭到MSB,这意味着4位我真正感兴趣的价值,将转为0000几步.

我已经读过你可以使用结构和位字来解决这个问题,但我从中读到的大部分内容都告诉我这是一个非常糟糕的主意.

c bit-manipulation motordriver

23
推荐指数
6
解决办法
2765
查看次数

标签 统计

bit-manipulation ×1

c ×1

motordriver ×1