每个人都知道abs()
函数来获得变量的绝对值。有没有一个类似的功能或有效的方法设置它忽略标志?
实例:
电机速度控制力最小值
if (abs(speed) < 50 && speed != 0)
{
if (speed < 0)
speed = -50;
else
speed = 50;
}
我正在寻找一个标准化的函数或一个聪明的位操作一行。
很明显,如果将上述内容包装到函数或宏中。
最佳答案
基本上是signum函数
speed = 50*sgn(speed);
这个有一个standard function
speed = copysign(50, speed);
但是对于整数类型,这不是很有效。
sgn()
函数可以使用各种其他方法实现,您可以找到herespeed = ((speed > 0) - (speed < 0))*50;
关于c - 如何设置/更改变量的绝对值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49691135/