const parseHex = function(val, signed, length) {
var num = parseInt(val);
var hex_str = '';
var hex_str_length = length * 2;
var min = 0;
var max = 0;
if (signed) {
min = -1 * Math.pow(2, 8 * length - 1);
max = Math.pow(2, 8 * length - 1) - 1;
if (num < min || num > max) {
} else if (num < 0) {
hex_str = (Math.pow(2, 8 * length) + num).toString(16);
if (hex_str.length < hex_str_length) {
hex_str = 'f'.repeat(hex_str_length - hex_str.length) + hex_str;
}
} else {
hex_str = num.toString(16);
if (hex_str.length < hex_str_length) {
hex_str = '0'.repeat(hex_str_length - hex_str.length) + hex_str;
}
}
} else {
min = 0;
max = Math.pow(2, 8 * length) - 1;
if (num < min || num > max) {
} else {
hex_str = num.toString(16);
if (hex_str.length < hex_str_length) {
hex_str = '0'.repeat(hex_str_length - hex_str.length) + hex_str;
}
}
}
return hex_str
};
- 调用该函数
- parseHex(-65536,true,4); // 结果为'ffff0000' 前两位表示正负 可只取后六位 ff0000