El hexadecimal representa cada byte de ocho bits con exactamente dos dígitos de base 16, 0-9 y a-f. El codificador opera sobre UTF-8 o bytes de archivo y emite pares en minúscula; el decodificador elimina espacios y reconstruye los bytes por pares.
Usa hex para inspeccionar flujos de bytes, hashes, campos de protocolo o firmas de archivo porque los límites de byte son visibles. Duplica el tamaño original, una cantidad impar de dígitos no es válida y por sí solo no comprime, cifra ni comprueba la integridad.
# Encoding
printf 'Hello' | xxd -p
# Output: 48656c6c6f
# Decoding
printf '48656c6c6f' | xxd -r -p
# Output: Hello
// Encoding
let encoded = Buffer.from("Hello").toString("hex");
console.log(encoded);
// Output: 48656c6c6f
// Decoding
let decoded = Buffer.from("48656c6c6f", "hex").toString();
console.log(decoded);
// Output: Hello
package main
import (
"encoding/hex"
"fmt"
)
func main() {
// Encoding
encoded := hex.EncodeToString([]byte("Hello"))
fmt.Println(encoded)
// Output: 48656c6c6f
// Decoding
decoded, _ := hex.DecodeString("48656c6c6f")
fmt.Println(string(decoded))
// Output: Hello
}
// Encoding
$encoded = bin2hex("Hello");
echo $encoded . "\n";
// Output: 48656c6c6f
// Decoding
$decoded = hex2bin("48656c6c6f");
echo $decoded . "\n";
// Output: Hello