1 poin oleh GN⁺ 2 jam lalu | Belum ada komentar. | Bagikan ke WhatsApp
  • Jika ASCII dibagi menjadi 7 bit, yaitu 2 bit teratas (grup) dan 5 bit terbawah (nilai), lalu disusun dalam tabel 4 kolom, hubungan antara karakter kontrol dan karakter cetak langsung terlihat
  • Tombol CTRL bekerja dengan menjadikan bit-bit atas dari karakter yang dimasukkan menjadi 0, sehingga menghasilkan karakter kontrol (control character) yang berbagi 5 bit terbawah yang sama
  • Misalnya, jika [(10 11011) ditekan bersama CTRL, hasilnya menjadi ESC(00 11011), yang dapat dijelaskan dengan operasi bit AND
  • Alasan ^J adalah line feed, ^H adalah backspace, dan ^I adalah tab juga berasal dari struktur yang sama; tampilan ^M(CR) pada file teks Windows pun mengikuti prinsip ini
  • Tabel ASCII yang umum dipakai biasanya menyembunyikan pola ini, tetapi jika dibagi per 32 karakter ke dalam kolom, maksud desainnya menjadi sangat jelas

Penemuan tabel ASCII 4 kolom

  • Pengguna Hacker News soneil memposting versi tabel ASCII yang disusun dalam 4 kolom per 32 karakter
  • Melalui susunan ini, langsung terlihat bahwa peralihan huruf besar/kecil hanya berbeda satu bit, dan bahwa alfabet berada pada 40h + nilai urutan (huruf kecil pada 60h)
  • Mengapa ^\[ adalah ESC juga bisa langsung dikonfirmasi dari tabel ini

Struktur encoding ASCII 7 bit

  • ASCII adalah encoding 7 bit; 2 bit pertama menunjukkan 4 grup, dan 5 bit terakhir merepresentasikan 32 nilai
    • Grup 00: karakter kontrol (NUL, SOH, STX, ESC, dll.)
    • Grup 01: karakter khusus dan angka (Spc, !, ", #, dll.)
    • Grup 10: alfabet huruf besar (@, A, B, C, dll.)
    • Grup 11: alfabet huruf kecil (`, a, b, c, dll.)
  • Karakter yang berada pada baris yang sama memiliki 5 bit terbawah yang sama, dan hanya bit grupnya yang berbeda

Tabel ASCII 4 kolom

Bit 00 (kontrol) 01 (khusus/angka) 10 (huruf besar) 11 (huruf kecil)
00000 NUL Spc @ `
00001 SOH ! A a
00010 STX " B b
00011 ETX # C c
00100 EOT $ D d
00101 ENQ % E e
00110 ACK & F f
00111 BEL ' G g
01000 BS ( H h
01001 TAB ) I i
01010 LF * J j
01011 VT + K k
01100 FF , L l
01101 CR - M m
01110 SO . N n
01111 SI / O o
10000 DLE 0 P p
10001 DC1 1 Q q
10010 DC2 2 R r
10011 DC3 3 S s
10100 DC4 4 T t
10101 NAK 5 U u
10110 SYN 6 V v
10111 ETB 7 W w
11000 CAN 8 X x
11001 EM 9 Y y
11010 SUB : Z z
11011 ESC ; [ {
11100 FS < \ |
11101 GS = ] }
11110 RS > ^ ~
11111 US ? _ DEL

Cara kerja tombol CTRL

  • Saat tombol CTRL ditekan, bit-bit atas dari karakter input diatur menjadi 0 sehingga berpindah ke grup karakter kontrol (00)
  • Ini dapat dinyatakan sebagai operasi bit AND:
    • 10 11011([) AND 00 11111(CTRL) = 00 11011(ESC)
  • Karena itu, CTRL+[ menghasilkan ESC bukan karena penetapan sewenang-wenang, melainkan desain berbasis operasi bit

Contoh praktis

  • ^J(CTRL+J) adalah LF(line feed), ^H(CTRL+H) adalah BS(backspace), dan ^I(CTRL+I) adalah TAB
  • Jika file teks Windows diperiksa dengan cat -A, akan tampil ^M, karena line ending Windows menggunakan format CR+LF
  • Alasan pengguna vim di terminal memakai CTRL+[ sebagai pengganti ESC juga berasal dari struktur bit ini

Belum ada komentar.

Belum ada komentar.