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

How to split this integer into its original values?

本文关键字:原始 拆分 整数      更新时间:2023-10-16

创建RGB数字的公式如下:

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

这会产生如下结果:8017035

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

使用和esp8266运行此代码

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

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

例如,以下是值往返的方式

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

要找到 R,你可以取模 1000。其余的将是 R。

要找到 G,您可以将 1000000取模,减去 R,然后除以 1000。模将删除 B 值,然后通过减去 R(您已经找到(将只剩下 G * 1000。

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

在R、G 或 B 为 100 的情况下,这将为您提供正确的结果。CoryKramer当前的最高答案将循环并告诉您数字是0,即使它是100。