HEX转signed int32 Big-endian
HEX:十六进制颜色值;signed int32 Big-endian:有符号32位大端存储
function hexToSigned(color: string): number {
let a = parseInt(color.substring(0, 2), 16);
let r = parseInt(color.substring(2, 4), 16);
let g = parseInt(color.substring(4, 6), 16);
let b = parseInt(color.substring(6, 8), 16);
return ((a << 24) + (r << 16) + (g << 8) + (b << 0));
}
signed int32 Big-endian 转 HEX
function zeroPaddedHex(n) {
let result = n.toString(16);
// 边界情况,toString(16)可能要补零的
if (result.length == 1) {
result = '0' + result;
}
return result;
}
function argbIntToHex(i) {
let hex = '';
hex += zeroPaddedHex(i >>> 24 & 0xFF);
hex += zeroPaddedHex(i >>> 16 & 0xFF);
hex += zeroPaddedHex(i >>> 8 & 0xFF);
hex += zeroPaddedHex(i >>> 0 & 0xFF);
return hex.toUpperCase();
}