echo '0A'
menghasilkan tiga karakter 0 A NL:; xxd -b
kemudian akan mencetak tiga karakter dalam biner. Jika Anda hanya menginginkan byte tunggal yang nilainya 10 (yaitu heksadesimal A
), Anda dapat menulis (dalam bash):
echo -n $'\x0A'
^ ^ ^
| | |
| | +-- `\x` indicates a hexadecimal escape
| +----- Inside a $' string, escapes are interpreted
+------- -n suppresses the trailing newline
Alternatif yang lebih baik adalah printf '\x0A'
; printf mengartikan sekuensi yang lolos dalam string format, dan tidak menampilkan baris baru yang tersirat. (Ini adalah solusi yang kompatibel dengan Posix, yang harus bekerja pada semua shell yang kompatibel dengan Posix.) Namun kemungkinan bash lainnya adalah echo -n -e '\x0A'
; -e
bendera (non-standar) meminta gema untuk menafsirkan urutan pelarian.
echo '1' | xxd -b
tidak akan menampilkan yang setara dengan hex 50
, karena xxd
tidak tahu itu 0A
adalah nomor hex dan 1
bukan. Juga, kode ascii untuk karakter 1
adalah hex 31
, bukan 50
.
Endianness tidak memengaruhi byte. Urutan bit dalam byte sepenuhnya konseptual sampai byte ditransmisikan melalui garis serial dan itupun hanya terlihat dengan osiloskop atau yang serupa.
50
. Ini salah ketik. Perbaiki sekarang