一、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<arr.length;i+=2){ ascii += String.fromCharCode(parseInt(arr[i]+arr[i+1],16)); } return ascii; }
調用該函數可以將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) 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了。
原創文章,作者:VTWCF,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/343252.html