C 颜色代码值转换为2位数字

C 颜色代码值转换为2位数字,c,math,C,Math,我正在进行一个项目,将LED的颜色更改为用户输入的RGB值的颜色 程序现在改变每种颜色亮度的工作方式是为其提供一个数字0-1,使0完全打开1完全关闭0.50是50%亮度等 为on提供0似乎有点倒退,但这只是编写代码的方式。我的问题是如何将值0-255转换为0-99我已经通过将3位数字除以2.58完成了数学运算,如果它是1表示打开,是0表示关闭,则给出了正确的数字,但既然它是向后的,我怎么才能得到相反的结果呢 这是剩下的吗?比如说240/2.58=93剩下的是7,那么我会用这个数字吗?不幸的是,数

我正在进行一个项目,将LED的颜色更改为用户输入的RGB值的颜色

程序现在改变每种颜色亮度的工作方式是为其提供一个数字
0
-
1
,使
0
完全打开
1
完全关闭
0.50
是50%亮度等

为on提供
0
似乎有点倒退,但这只是编写代码的方式。我的问题是如何将值
0
-
255
转换为
0
-
99
我已经通过将3位数字除以
2.58
完成了数学运算,如果它是
1
表示打开,是
0
表示关闭,则给出了正确的数字,但既然它是向后的,我怎么才能得到相反的结果呢

这是剩下的吗?比如说
240
/
2.58
=
93
剩下的是
7
,那么我会用这个数字吗?不幸的是,数学从来不是我的强项。我知道这个问题不适用于某一种语言,但我将用
C
来标记它,因为这就是它要用的语言。如果有人能提供一个使用
C
获取数字剩余部分的例子,那就太棒了。我知道模算子,但我认为这在我的情况下不起作用,但我可能错了

double mapNumbers(double x, long xMin, long xMax, long yMin, long yMax)
{
  return ((double)(x - xMin) * (yMax - yMin)) / ((double)(xMax - xMin)) + yMin;
}
使用上述功能:

您可以映射介于
0-255
之间的
x
,并从
0-99
中获取相应的数字-影响任何数字范围和任何其他数字范围:

因此:
mapNumbers(10/*假设这是x*/,0,255,0,99)

使用上述功能:

您可以映射介于
0-255
之间的
x
,并从
0-99
中获取相应的数字-影响任何数字范围和任何其他数字范围:

因此:
mapNumbers(10/*假设这是x*/,0,255,0,99)

好的,从0-1范围转换为0-255范围,只需乘以255即可。相反,只需从1中减去第一个值

result = (1 - x) * 255;

那么,要从0-1范围转换为0-255范围,只需乘以255即可。相反,只需从1中减去第一个值

result = (1 - x) * 255;

1-color/2.58
,不是吗?
1-color/2.58
,不是吗?