Clean up and simplify our hexToBinary method

This commit is contained in:
javl
2026-08-15 08:53:01 +02:00
parent 9d70bae4ba
commit 98514511fb
+4 -31
View File
@@ -467,40 +467,13 @@ function updateString(fieldName) {
// Convert hex to binary // Convert hex to binary
function hexToBinary(s) { function hexToBinary(s) {
let i;
let ret = ''; let ret = '';
// lookup table for easier conversion. "0" characters are padded for "1" to "7" for (let i = 0; i < s.length; i += 1) {
const lookupTable = { const nibble = parseInt(s[i], 16);
0: '0000', if (Number.isNaN(nibble)) {
1: '0001',
2: '0010',
3: '0011',
4: '0100',
5: '0101',
6: '0110',
7: '0111',
8: '1000',
9: '1001',
a: '1010',
b: '1011',
c: '1100',
d: '1101',
e: '1110',
f: '1111',
A: '1010',
B: '1011',
C: '1100',
D: '1101',
E: '1110',
F: '1111',
};
for (i = 0; i < s.length; i += 1) {
// eslint-disable-next-line no-prototype-builtins
if (lookupTable.hasOwnProperty(s[i])) {
ret += lookupTable[s[i]];
} else {
return { valid: false, s }; return { valid: false, s };
} }
ret += nibble.toString(2).padStart(4, '0');
} }
return { valid: true, result: ret }; return { valid: true, result: ret };
} }