No estoy muy seguro de cómo resolver este problema, Pregunta:
**Convierte un porcentaje a una cadena hexadecimal de 8 bits linealmente
const percentageTo8BitHex = (percentage) => { // Insert your code here }; // This functions is here to test the result only export const testConversion = () => { const fixedValuesToTest = [-1, 0, 1, 100, 101]; const fixedExpectedResults = ['00', '00', '03', 'FF', 'FF']; const randomValuesToTest = []; for (let i = 0; i < 5; i++) { randomValuesToTest.push(Math.random() * 98 + 1); } fixedValuesToTest.forEach((value, index) => { console.log( `Testing: ${value} - expected ${fixedExpectedResults[index]} - received ${percentageTo8BitHex(value)}`, ); }); randomValuesToTest.forEach((value) => { const hexString = percentageTo8BitHex(value); const valueFromHex = parseInt(hexString, 0b10000) / 0b11111111; const valid = Math.abs(valueFromHex * 0x64 - value) < 0b10; console.log(`Testing: ${value} - received ${hexString} (${valueFromHex}) - ${valid ? 'VALID' : 'INVALID'}`); }); };
Mi resultado es:
Primero tengo que redondear Percentage = Math.max(0, Math.min(100, percentage))
Conversión a escala completa 0..100 => 0..FF es igual a 0..255
Entonces, ¿tengo que convertirlo así? hexadecimal = 255 * (porcentaje / 100).
¿Cuál es su opinión para resolver este problema? Agradezco sus respuestas.