C中的简单方法是仅使用8位算术将8位数从0-255缩放到0-100?

时间:2016-04-18 05:43:17

标签: math scaling

我有一个8位无符号数,0-255。由于微控制器的限制,我需要将其缩放到0-100而不使用除8位整数运算以外的任何其他算法,包括转换,复制到其他变量等。

对我来说,这种缩放的准确方法是什么?

1 个答案:

答案 0 :(得分:1)

您需要使用16位。

101 divided by 256

将值放在16位寄存器的高字节中:

x >> 2 + x >> 3 + x >> 6 + x >> 8

结果将在寄存器的高字节中。

仅使用8位寄存器的实现留给读者练习。