let _ByteHexFunc = {
Hex2BoolArr: function (hex, slt) {
let arr = hex.split(slt)
let result = []
arr.forEach(element => {
let bin = parseInt(element, 16).toString(2)
bin = bin.padStart(8, '0');
result.push(bin.split(""));
});
let arrResult = result.flat(1);
return arrResult;
},
to2DArray: function (arr, columns) {
let rows = Math.ceil(arr.length / columns);
let result = [];
for (let i = 0; i < rows; i++) {
result.push(arr.slice(i * columns, i * columns + columns));
}
return result;
},
binaryToHex: function (binaryString) {
let decimal = parseInt(binaryString, 2);
let hex = (decimal.toString(16)).padStart(2,"0");
return hex;
},
boolArr2Hex: function (boolArr, headercolumns, footercolumns) {
if (headercolumns) {
for (let i = 0; i < headercolumns; i++)
boolArr.unshift(false)
}
if (footercolumns) {
for (let i = 0; i < footercolumns; i++)
boolArr.push(false)
}
if (boolArr.length % 8 != 0) {
alert("数组长度必须是8的整数倍")
return 0;
}
let arr = _ByteHexFunc.to2DArray(boolArr, 8)
let str = "";
arr.forEach(a => {
let tmp = ""
a.forEach(i => {
if (i) {
tmp = tmp + '1'
} else {
tmp = tmp + '0'
}
})
str = str + _ByteHexFunc.binaryToHex(tmp).toUpperCase() + "."
})
return str.substring(0, str.length - 1)
}
}
js字节布尔二进制数组十六进制数互转
于 2024-03-12 17:05:49 首次发布