一、Hex转RGB Echarts
在数据可视化中,经常会用到Echarts中的颜色配置,而Echarts中的颜色配置可以采用16进制表示,也可以采用rgb表示,因此hex转rgb是非常必要的。Echarts提供了一个颜色数组,我们常用到的是"default"、"light"、"dark"三种主题,可以通过下面的代码将hex格式的颜色转成rgb格式。
function hexToRgb(hex) { var r = parseInt(hex.slice(1,3), 16), g = parseInt(hex.slice(3,5), 16), b = parseInt(hex.slice(5,7), 16); return "rgb(" + r + ", " + g + ", " + b + ")"; }
在Echarts中使用时,可以直接调用该函数将hex颜色码转成rgb:
backgroundColor: hexToRgb('#ffffff')
这样就可以将背景色设置成白色。
二、Hex转换
1. Hex转换为十进制数字
16进制(Hexadecimal)常用于表示颜色、字符以及地址等等,在JavaScript中,我们可以通过parseInt函数将它们转成10进制数字。下面的代码是将16进制数'0x1f'转成10进制数字31:
var num = 0x1f; console.log(num); // 31
2. 十进制数字转换为Hex
在Web开发中,常常需要将10进制数字转换为16进制数,例如颜色值的读取、url地址、IPv6地址等等。下面的代码将数字255转换为16进制:
var hex = (255).toString(16); console.log(hex); // ff
三、Hex转Ascii
Ascii码是一种美国信息交换标准代码,用于把每个字母、数字、标点符号及其他符号转换成计算机可识别的数字代码。下面的代码将16进制数转换成对应的Ascii码:
function hexToAscii(hex){ var arr = hex.split(""); var ascii = ""; for(var i=0;i调用该函数可以将16进制转换成Ascii:
var ascii = hexToAscii("68656c6c6f"); console.log(ascii); // hello四、Hex转QByteArray
在Qt开发中,QByteArray是一个非常常用的数据类型,用于管理一组字节数据。下面的代码将16进制数转成QByteArray:
QByteArray hexToQByteArray(QString strHex) { QByteArray byteArray; char hexdata, lowhexdata; int hexdatalen = 0; int len = strHex.length(); byteArray.resize(len / 2); char *pHex = byteArray.data(); for (int i = 0; i < len;) { hexdata = strHex[i].toLatin1(); if (hexdata == ' ') { i++; continue; } i++; if (i >= len) break; lowhexdata = strHex[i].toLatin1(); hexdatalen++; *pHex = (char)(hexCharToValue(hexdata) * 16 + hexCharToValue(lowhexdata)); pHex++; i++; } byteArray.resize(hexdatalen); return byteArray; }该函数将16进制的字符串转成了QByteArray,可以在Qt开发中使用。
五、Hex转Eth
Ethereum中经常使用16进制码表示货币的数量以及智能合约代码,因此将16进制转成Eth十分必要。下面的代码是将16进制转成Eth:
const hexToEth = (hex) => { return new BigNumber(hex).dividedBy(new BigNumber(10).pow(18)).toNumber(); }这样就能将16进制转成Eth了。