我有一系列的RGB LED灯连接到我的Arduino板上,我试图改变LED的值,唯一的问题是,我似乎找不到任何关于十六进制到RGB的转换器。
此外,RGB值与您获得的常规值不同,如(255,255,255) =白色。它们似乎是某种类型的字节格式(0x0ff)?我对此一点也不熟悉。
谁能给我指个正确的方向,让我把像'9cb261‘这样的十六进制颜色转换成RGB字节值?
谢谢
发布于 2013-04-17 21:05:04
十六进制只是写入相同数字的一种快捷方式,如果你关心哪些位被设置了哪些位没有被设置,这种格式更容易阅读。
数字"255“告诉你有2个”100“,5个”10“和5个”1“。换句话说,它是2 "10^2",5 "10^1“和5 "10^0”。
十六进制的概念是一样的,但是我们不使用10,而是使用16。因为每个地方可能有超过10个东西,所以我们在0-9之后添加字符a-f。
举个简短的例子,"9c“表示"16^1”的9个实例加上"16^0“的c (12)个实例。这产生144 + 12,或156。
"0x“前缀只是告诉您下面的字符串将被解释为十六进制字符串。
为了将您的示例分开,十六进制颜色9cb261只有3个字节(9c,b2,61)。如果我们将字节转换回十进制,它是(9*16+12,11*16+2,6*16+1)或(156,178,97)
在Wikipedia's Hexadecimal article.上有一篇完整的文章
https://stackoverflow.com/questions/16070037
复制相似问题