echo '0A'produce tres caracteres 0 A NL:; xxd -bluego imprimirá esos tres caracteres en binario. Si solo desea el byte único cuyo valor es 10 (es decir, hexadecimal A), podría escribir (en bash):
echo -n $'\x0A'
^ ^ ^
| | |
| | +-- `\x` indicates a hexadecimal escape
| +----- Inside a $' string, escapes are interpreted
+------- -n suppresses the trailing newline
Una mejor alternativa sería printf '\x0A'; printf interpreta secuencias de escape en la cadena de formato y no genera nuevas líneas implícitas. (Esta es la solución compatible con Posix, que debería funcionar en cualquier shell compatible con Posix.) Otra posibilidad más de bash es echo -n -e '\x0A'; la -ebandera (no estándar) le pide a echo que interprete las secuencias de escape.
echo '1' | xxd -bno generará el equivalente de hexadecimal 50, porque xxdno sabe que 0Aes un número hexadecimal y 1no lo es. Además, el código ascii para el personaje 1es hexadecimal 31, no 50.
Endianness no afecta a los bytes. El orden de los bits dentro de un byte es completamente conceptual hasta que el byte se transmite a través de una línea en serie e incluso entonces solo es visible con un osciloscopio o algo similar.
50. Es un error tipográfico. Arreglando ahora