如何将此整数拆分为其原始值?

时间:2017-07-21 19:59:31

标签: c++ arduino

创建 RGB 数字的公式为:

R (value between 0-100) + G (value between 0-100) * 1000 + B (value between 0-100) * 1000000

这导致类似于:8017035

如何将此值转换回原来的3个变量值?

使用和esp8266运行此代码

2 个答案:

答案 0 :(得分:5)

完全相同的方式,但模数而不是乘法。

int color = 8017035;
int r = color % 100;
int g = (color / 1000) % 100;
int b = (color / 1000000) % 100;

For example,这是值如何往返

答案 1 :(得分:1)

有几种方法可以做到这一点。

要找到R,你可以模数为1000.余数为R。

要找到G,你可以模1000000,减去R,然后除以1000.模数将删除B值,然后通过减去R(你已经找到)将只留下G * 1000。 / p>

要查找B,您可以减去R和G,然后除以1000000。

如果R,G或B为100,这将给出正确的结果.CoryKramer当前的最佳答案将循环并告诉您数字为0,即使它是100.