hex - Arduino 草图中的 RGB 到十六进制

标签 hex rgb arduino

我有一个函数,它接受 24 位到 12 位十六进制并在 LCD 上打印颜色值。

如果用户输入 RGB 值,如何将 RGB 转换为单个 24 位十六进制字符串?

我在网上找了很多Java和C++的算法,但是好像没法兼容Arduino。

最佳答案

我最后看了看,Arduino 没有打印其他格式的好方法,比如 printf()。所以你必须自己转换为十六进制,或者找到一个现有的函数,通过将实数转换为十六进制字符表示来完成它。这是一种方法:

我假设“24 位”是 RGB 值,按照惯例,它是 0-255 的 3 个 8 位数字。在这种情况下,每个十进制数都有两位十六进制数。让我们用 R = 243 来说明。

第一个十六进制“数字”将是 h1 = int(R/16),即 15。 另一个是 h2 = R - h1*16,即 3。

但是那些“数字”仍然是十进制数。例如,在数组中有一个查找表,其中数组的索引是十进制数,值是十六进制字符。

例如,您将有 lookup[15] = 'F'lookup[3] = '3'

只需打印出所有这些没有空格的数字即可。

关于hex - Arduino 草图中的 RGB 到十六进制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8319980/

相关文章:

python - 从 Raspberry pi 发送串行通信

c++ - 在 C++ 中,如何访问多维数组中的值?

javascript - 为什么我的按位运算在模拟器中返回 0?

c - 如何在 C 中将十六进制数组转换为十进制数组并再次转换回来?

java - 在 Java 中打印前 1000 个 Unicode 字符

C# setHue(或者,将 HSL 转换为 RGB 并设置 RGB)

Java:检测显示器是RGB还是BGR

php - 在 PHP 中将十六进制颜色转换为 RGB 值

ssh - 如何在 LAN 上检测 Arduino Yún/Yún shield IP 地址

java - 作为原始十六进制打印双倍?