易语言中的十进制颜色代码与十六进制的转换问题。

问题是这样的:比如以蓝色为例RGB值是0,0,255易语言中的十进制颜色代码为16711680,直接转换为十六进制结果是FF0000,而FF0000这个值其实是表示红色的... 问题是这样的:比如以蓝色为例 RGB值是0,0,255 易语言中的十进制颜色代码为16711680,直接转换为十六进制结果是FF0000,而FF0000这个值其实是表示红色的。这是为什么?还是根本不能直接转换?有什么其他的办法? 展开
 我来答
本豪爱大米
推荐于2017-11-27 · TA获得超过274个赞
知道小有建树答主
回答量:358
采纳率:66%
帮助的人:276万
展开全部
.版本 2
.支持库 spec
.程序集 窗口程序集_启动窗口
.子程序 __启动窗口_创建完毕
调试输出 (颜色值到十六 (#蓝色))
调试输出 (颜色值到RGB (#蓝色))
调试输出 (十六到RGB (“0000FF”))

.子程序 颜色值到RGB, 文本型
.参数 颜色值, 整数型, , 例:#蓝色
.局部变量 RGB, 字节集
RGB = 到字节集 (颜色值)
返回 (到文本 (RGB [1]) + “,” + 到文本 (RGB [2]) + “,” + 到文本 (RGB [3]))

.子程序 颜色值到十六, 文本型
.参数 颜色值, 整数型, , 例:#蓝色
.局部变量 RGB, 字节集
RGB = 到字节集 (颜色值)
返回 (进制_到十六进制 (RGB [1]) + 进制_到十六进制 (RGB [2]) + 进制_到十六进制 (RGB [3]))

.子程序 十六到RGB, 文本型
.参数 文本, 文本型, , 待转换的十六进制文本
.局部变量 x, 整数型
.局部变量 结果, 文本型
.变量循环首 (1, 取文本长度 (文本), 2, x)
    结果 = 结果 + 到文本 (进制_十六到十 (取文本中间 (文本, x, 2))) + “,”
.变量循环尾 ()
返回 (取文本左边 (结果, 取文本长度 (结果) - 1))
.子程序 进制_十六到十, 整数型, 公开, 将十六进制转换成十进制
.参数 文本, 文本型, , 待转换的十六进制文本
.局部变量 中间文本, 文本型
.局部变量 结果, 长整数型
.局部变量 x, 整数型
.局部变量 RGB, 字节集
.变量循环首 (1, 取文本长度 (文本), 1, x)
    中间文本 = 取文本中间 (文本, x, 1)
    结果 = (寻找文本 (“0123456789ABCDEF”, 中间文本, , 真) - 1) × 求次方 (16, 取文本长度 (文本) - x) + 结果
.变量循环尾 ()
返回 (结果)
.子程序 进制_到十六进制, 文本型, 公开
.参数 数值, 整数型, , 只能是255以内的数
返回 (多项选择 (右移 (数值, 4) + 1, “0”, “1”, “2”, “3”, “4”, “5”, “6”, “7”, “8”, “9”, “A”, “B”, “C”, “D”, “E”, “F”) + 多项选择 (位与 (数值, 15) + 1, “0”, “1”, “2”, “3”, “4”, “5”, “6”, “7”, “8”, “9”, “A”, “B”, “C”, “D”, “E”, “F”))
追问
谢谢了不过我想到了一个好的写法。
y = 到字节集 (16711680)
返回 (取十六进制文本 (y [1] × 65536 + y [2] × 256 + y [3]))
这样就转换好了。
匿名用户
2020-05-27
展开全部
因为易语言使用的颜色,是BB+GG+RR,十六进制转整数。平常用的颜色是RR+GG+BB。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
深远且勤俭丶好汉j
2019-04-29
知道答主
回答量:1
采纳率:0%
帮助的人:755
展开全部
y = 到字节集 (16711680)
返回 (取十六进制文本 (y [1] × 65536 + y [2] × 256 + y [3]))
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式