颜色值进制转换

颜色值进制转换
专业的和非专业程序员在编程时都碰到过颜色值的表达式。特别是在编制网页和设计界面时,都要选择颜色。各语言的颜色值表达式就两种,十六进制的颜色值hex$和十进制的RGB格式。现成的调色板颜色表也是这两种格式。写代码时会遇到写颜色值码,就会用到这两种颜色值的转换。基础的方法是十进制转十六进制,反过来十六进制转十进制二种方法。颜色值是分3段来转换的,若是aRGB格式分4段。
每段只需要 0-255 <转换> 00 - ff。
颜色值表达格式:
hex = 0xff7dff       RGB=(255,125,255)
hex = # ff7dff        RGB=(255,125,255)
aHex = 0xff7d7dff    aRGB=(255,125,125,255)

今写了二个进制转换函数:
十进制转十六进制 dec2hex ()
十六进制转十进制 hex2dec ()

以及二个颜色值转换函数:
十六进制颜色值转RGB(r, g, b) :hex2RGB ()
RGB颜色值转为十六进制颜色值:RGB2hex ()

004516e045324e72ab1cb572017b1cd9.png

6663429c6efc4e0dbcb1519cf56dbeac.png 

4ac7aae51d1f4b229e77ef5e23936cb6.png 

 

hex2RGB (){  //十六进制颜色值转RGB(r, g, b)
 //输入十六进制颜色值转换为十进制RGB格式颜色值
 //例: color$="0xffe992" ;  格式输入颜色值字串

        print "颜色值字串 = ",color$ ;
    get$=subString (color$, 2, 2);
       hex2dec () ;
       R=dec ;
    get$=subString (color$, 4, 2);
       hex2dec () ;
       G=dec ;
    get$=subString (color$, 6, 2);
       hex2dec () ;
       B=dec ;
    print "RGB = ", "( ",R," , ",G," , ",B," )" ;    //输出
       print "  " ;
}//hex2RGB ()

test (){    //测试十六进制颜色值转换
//十六进制颜色值转为RGB
    clearOutput ();
    color$="0xffe992" ;    //格式输入颜色值字串
        hex2RGB () ;
    color$="0x007d7d" ;    //格式输入颜色值字串
        hex2RGB () ;

    color$="0x00abff" ;    //格式输入颜色值字串
        hex2RGB () ;
 //反转 > 
       print "反转   > " ;
       RGB2hex ();
    color$="0x807aff" ;    //格式输入颜色值字串
        hex2RGB () ;
 //反转 > 
        print "反转   > " ;
        RGB2hex ();
}//test ()


RGB2hex (){
//RGB颜色值转为十六进制颜色值
 string ss, ss1, ss2, ss3 ; 
    //传入 R=255 ;  G=128 ; B=128 ; 
   //**** dec To hex  and show hex
    dec=R ;  dec2hex() ;  ss1=hex ;
    dec=G ;  dec2hex() ;  ss2=hex ;
    dec=B ;  dec2hex() ;  ss3=hex ;  
         ss="0x"+ss1+ss2+ss3 ;
    print "RGB = ", "( ",R," , ",G," , ",B ," )" ;
    print "十六进制颜色值 = ", ss ;
    print "  ";
}//RGB2hex ()

test16 (){    //测试RGB转换十六进制颜色值
    clearOutput ();
     R=255 ;  G=128 ; B=128 ;
     RGB2hex ();

     R=55 ;  G=98 ; B=255 ;
     RGB2hex ();
     R=155 ;  G=255 ; B=25 ;
     RGB2hex ();
     R=255 ;  G=233 ; B=146 ;
     RGB2hex ();

}//test16 ()

72c71713a4f540e5825f374d15ca8621.png

c5f30f62ead54f5f9cb4f68eb06a5861.png  

//二个函数:
//十进制转十六进制 dec2hex ()
//十六进制转十进制 hex2dec ()

dec2hex (){    
//十进制非负整数int dec 转为十六进制值 hex $
 string hx$ ;
  hx$="0123456789ABCDEF" ;
        hex="";     //init 输出串

 DecToHex :
  //** do calculate until dec=0, return hex
      k=dec-dec/16*16 ;  //k=dec Mod 16, k=dec % 16
      dec=dec/16 ;            //整除,dec\16
      hex=subString (hx$, k,1)+hex ;  
           if (dec>0) goto DecToHex ;
      //return string hex 
}//dec2hex ()

hex2dec (){  
//传入十六进制数转换为十进制数
//传入 string  get$ 输出 int dec 
        nlen=len (get$);      //字串长度
        dec=0 ;                 //init 置初值 0
 //开始计算 >
      for (i=0; i<nlen; i++){
             a$=subString (get$, i, 1);
 //字符串转为数值的方法很多,我采用最简单直观的写法,字母大小写都可以。
        if (a$=="0") k=0 ;
        if (a$=="1") k=1 ;
        if (a$=="2") k=2 ;
        if (a$=="3") k=3 ;
        if (a$=="4") k=4 ;
        if (a$=="5") k=5 ;
        if (a$=="6") k=6 ;
        if (a$=="7") k=7 ;
        if (a$=="8") k=8 ;
        if (a$=="9") k=9 ;
        if (a$=="A"||a$=="a") k=10 ;
        if (a$=="B"||a$=="b") k=11 ;
        if (a$=="C"||a$=="c") k=12 ;
        if (a$=="D"||a$=="d") k=13 ;
        if (a$=="E"||a$=="e") k=14 ;
        if (a$=="F"||a$=="f") k=15 ;
         kn=nlen-i-1 ;     //高权位起降幂计算
         dec=dec+(int)(k*pow(16,kn)) ;   //乘方累加
              }       // return dec
 }//hex2dec ()

//**** End ****

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/841235.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

打造有情感的AI智能体-情感问答

目录 文心智能体平台简介 情感问答智能体介绍 优势1主动提问深入分析你的困扰&#xff0c;合理建议 优势2多次主动提问&#xff0c;引导用户补全信息。 优势3整合多种强大工具 最近发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c…

04.爬虫---Session和Cookie

04.Session和Cookie 1.Session2.Cookie3.详细对比4.Cookie属性结构5.一些误区 Session和Cookie是Web开发中用于用户状态管理的两种常见技术。理解它们的区别对于开发安全的Web应用至关重要。 1.Session Session代表服务器与客户端的一次会话过程。服务器端存储了Session对象&…

重生奇迹MU格斗家上手最轻松的职业

重生奇迹MU格斗家玩法攻略&#xff0c;有一个比较奇葩的职业&#xff0c;那就是格斗家。格斗家拥有其他职业没有的优势&#xff0c;就是加体力和敏捷都可以提升攻击力百分比。格斗家玩法攻略 目前格斗家最多的就是敏格玩法&#xff0c;配合智力MM加成后的幽冥光速拳可以说是第…

中国电子学会(CEIT)2023年09月真题C语言软件编程等级考试四级(含详细解析答案)

中国电子学会(CEIT)考评中心历届真题(含解析答案) C语言软件编程等级考试四级 2023年09月 编程题四道 总分:100分一、酒鬼(25分) Santo刚刚与房东打赌赢得了一间在New Clondike的大客厅。今天,他来到这个大客厅欣赏他的奖品。 房东摆出了一行瓶子在酒吧上。瓶子…

调用其他程序(不用import call tranction)

ABAP cl_salv_bs_runtime_info 读取其他程序显示的ALV-CSDN博客

react-beautiful-dnd 横纵排序demo

简单导入就可以看到效果 1. 安装依赖 npm i react-beautiful-dnd 2. 纵向排序 import React, { useState } from react; import { DragDropContext, Droppable, Draggable } from react-beautiful-dnd;// 纵向排序 const reorder (list, startIndex, endIndex) > {con…

v-rep---script-function

作用&#xff0c;实现&#xff0c;参数讲解。 script-function标签 作用 问题&#xff1a;如何在插件的接口中调用lua脚本中定义的函数&#xff1f; 用于声明一个函数&#xff0c;这个函数的作用是通过v-rep提供的接口sim::callScriptFunctionEx()调用脚本的函数&#xff0…

专业的力量:在自己的领域成为专家

专业的力量:在自己的领域成为专家 我是穿拖鞋的汉子&#xff0c;魔都中坚持长期主义的汽车电子工程师。 老规矩&#xff0c;分享一段喜欢的文字&#xff0c;避免自己成为高知识低文化的工程师&#xff1a; 现在稀缺的已不再是信息资源&#xff0c;而是运用信息的能力。过去的海…

Android 第三方框架:图片加载:Glide:功能介绍

文章目录 网络加载 网络加载方案 方案一:默认基于HttpUrlConnection方案二:提供与Google Volley和Square OkHttp快速继承的工具库网络优化方案 方案一:绑定生命周期,停止不必要的加载方案二:提供同步加载和异步加载图片解码 图片解码方案 方案一:系统提供的BitmapFactory…

Python中的单例模式:原理、实现与应用

Python中的单例模式&#xff1a;原理、实现与应用 一、引言 在软件开发中&#xff0c;设计模式是一种用于解决常见问题的最佳实践。单例模式&#xff08;Singleton Pattern&#xff09;是这些设计模式中的一种&#xff0c;它确保一个类仅有一个实例&#xff0c;并提供一个全局…

深入了解Nodejs模块机制

深入了解Nodejs模块机制 我们都知道Nodejs遵循的是CommonJS规范&#xff0c;当我们require(moduleA)时&#xff0c;模块是怎么通过名字或者路径获取到模块的呢&#xff1f;首先要聊一下模块引用、模块定义、模块标识三个概念。 1 CommonJS规范 1.1 模块引用 模块上下文提供…

安装部署统信UOS服务器操作系统1070e

原文链接&#xff1a;安装部署统信UOS服务器操作系统1070e Hello&#xff0c;大家好啊&#xff01;今天给大家带来一篇关于安装部署统信UOS服务器操作系统1070e的文章。统信UOS是一款基于Linux的国产操作系统&#xff0c;以其安全性和稳定性受到广泛关注。本文将详细介绍如何安…

58同城如何降低 80%的机器成本 | OceanBase案例

本文作者&#xff1a;58同城架构师刘春雷 一、背景介绍 58同城作为中国互联网生活服务领域的领军者&#xff0c;其平台规模居国内之首&#xff0c;涵盖了包括车辆交易、房产服务、人才招聘、本地生活服务以及金融等多元化的业务场景。 因其业务的广泛性和多样性&#xff0c;我…

飞天使-linux操作的一些技巧与知识点11-升级jenkins 版本

文章目录 升级jenkins 升级jenkins [rootgcp-hongkong-test-git ~]# cd /usr/share/java/ [rootgcp-hongkong-test-git java]# ll total 360004 -rw-r--r-- 1 root root 93489042 Apr 17 23:00 jenkins.war主要是去官网找到这个包&#xff0c;然后替换&#xff0c;重启jenkins…

Java开发大厂面试第26讲:生产环境如何排查问题和优化 JVM?

通过前面几个课时的学习&#xff0c;相信你对 JVM 的理论及实践等相关知识有了一个大体的印象。而本课时将重点讲解 JVM 的排查与优化&#xff0c;这样就会对 JVM 的知识点有一个完整的认识&#xff0c;从而可以更好地应用于实际工作或者面试了。 我们本课时的面试题是&#x…

如何在Linux中查看目录下的文件数量?

在管理Linux系统时&#xff0c;经常需要检查特定目录下的文件数量。这可以帮助我们了解目录的内容量和结构。以下是几种在Linux中查看目录下文件数量的方法&#xff0c;每种方法都适用于不同的场景。 1. 使用 ls 和 wc 命令 这是最直接的方法之一。使用 ls 命令列出目录内容&…

本地连接github仓库

【1】新建github仓库 【2】本地克隆并提交 $ git clone https://github.com/TomJourney/soil.git Cloning into soil... warning: You appear to have cloned an empty repository.pacosonDESKTOP-E4IASRJ MINGW64 /d/github/TomJourney/soil (master) $ git add readme.txtpa…

HTML静态网页成品作业(HTML+CSS+JS)——心理健康教育介绍网页(4个页面)

&#x1f389;不定期分享源码&#xff0c;关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 &#x1f3f7;️本套采用HTMLCSS&#xff0c;使用Javacsript代码使用下拉菜单的实现以及首页图片的轮播&#xff0c…

CS144(所有lab解析)

CS144 lab0-CSDN博客 (CS144 2024)Lab Checkpoint 1: stitching substrings into a byte stream &#xff08;详细解析&#xff09;-CSDN博客 CS144 Lab2 &#xff08;2024&#xff09;超详细解析-CSDN博客 Lab Checkpoint 3: the TCP sender-CSDN博客 CS144 Checkpoint 4: in…