Skip to content

Tabel ASCII dan Konverter

Tabel ASCII lengkap: 128 karakter dalam desimal, heksadesimal, oktal, dan biner, plus konverter dua arah antara teks dan kode ASCII. Karakter kontrol disertai escape sequence, notasi caret, dan di mana Anda menemuinya.

Tanpa Pelacakan Berjalan di Browser Gratis

Semuanya berjalan di peramban Anda — masukan Anda tidak pernah diunggah, dicatat, atau disimpan.

Teks dan kode ASCII, dua arah

Tabel ASCII lengkap (0–127)

128 / 128
Des Heks Okt Biner Karakter Nama Escape Caret HTML Di mana Anda menemuinya
0 00 000 00000000 NUL Null \0 ^@ � Penutup string di C; memisahkan nama berkas pada find -print0 dan xargs -0; membuat grep melaporkan „Binary file matches".
1 01 001 00000001 SOH Start of Heading ^A  Protokol FIX memakainya sebagai pemisah field, itulah sebabnya pesan FIX tampak seperti satu baris memanjang.
2 02 002 00000010 STX Start of Text ^B  Header frame pada protokol serial, POS, dan pemindai barcode; tombol prefiks tmux Ctrl+B.
3 03 003 00000011 ETX End of Text ^C  Ctrl+C mengirim bita ini; disiplin baris tty mengubahnya menjadi SIGINT, sehingga program Anda tidak pernah melihatnya.
4 04 004 00000100 EOT End of Transmission ^D  Ctrl+D mengirimkan baris masukan saat ini; ketika barisnya kosong, read mengembalikan 0 bita, dan itulah EOF.
5 05 005 00000101 ENQ Enquiry ^E  Handshake tautan lama; sebagian terminal membalasnya dengan string identifikasi.
6 06 006 00000110 ACK Acknowledge ^F  Berpasangan dengan ENQ dan NAK pada protokol lapisan tautan lama; masih dijumpai di perangkat serial industri.
7 07 007 00000111 BEL Bell \a ^G  printf '\a' membunyikan bel; kini lebih sering dipakai mengakhiri urutan OSC, misalnya saat menyetel judul jendela.
8 08 010 00001000 BS Backspace \b ^H  Penghapusan mundur pada bilah kemajuan. Perhatikan bahwa kebanyakan terminal mengirim 0x7F untuk Backspace, bukan bita ini.
9 09 011 00001001 HT Character Tabulation \t ^I 	 Resep Makefile harus diawali TAB sungguhan; gofmt membuat indentasi dengan TAB; tombol Tab dan Ctrl+I adalah bita yang sama.
10 0A 012 00001010 LF Line Feed \n ^J 
 Baris baru di Unix dan macOS; core.autocrlf pada git mengonversi antara bita ini dan CRLF.
11 0B 013 00001011 VT Line Tabulation \v ^K  Nyaris punah, tetapi masih dihitung sebagai pemisah baris: splitlines() memecah di sini sedangkan split("\n") tidak.
12 0C 014 00001100 FF Form Feed \f ^L  Ganti halaman pada printer; Ctrl+L membersihkan terminal; Emacs memakainya sebagai penanda bagian di berkas sumber.
13 0D 015 00001101 CR Carriage Return \r ^M 
 Paruh pertama CRLF Windows; tampil sebagai ^M di git diff; menyebabkan „bad interpreter: /bin/bash^M".
14 0E 016 00001110 SO Shift Out ^N  Beralih ke himpunan karakter alternatif G1 pada ISO 2022; membungkus wilayah dua bita di mainframe EBCDIC.
15 0F 017 00001111 SI Shift In ^O  Kembali ke himpunan karakter bawaan G0, berpasangan dengan SO.
16 10 020 00010000 DLE Data Link Escape ^P  Prefiks escape untuk byte stuffing pada protokol biner lama.
17 11 021 00010001 DC1 Device Control One ^Q  XON — melanjutkan kendali aliran perangkat lunak; Ctrl+Q mencairkan keluaran terminal.
18 12 022 00010010 DC2 Device Control Two ^R  Tidak punya makna modern yang baku. Ctrl+R di shell adalah pengikatan tombol readline, tidak terkait kode ini.
19 13 023 00010011 DC3 Device Control Three ^S  XOFF — menjeda kendali aliran perangkat lunak. Tidak sengaja menekan Ctrl+S adalah penyebab lazim terminal yang „membeku".
20 14 024 00010100 DC4 Device Control Four ^T  Tidak punya makna modern yang baku; di BSD dan macOS Ctrl+T adalah tombol status tty.
21 15 025 00010101 NAK Negative Acknowledge ^U  Ctrl+U menghapus seluruh baris — itu setelan kill pada tty, bukan makna asli kode ini.
22 16 026 00010110 SYN Synchronous Idle ^V  Ctrl+V adalah lnext: tekan tombol itu lalu Tab untuk mengetik TAB harfiah di bash tanpa memicu pelengkapan otomatis.
23 17 027 00010111 ETB End of Transmission Block ^W  Ctrl+W menghapus kata sebelumnya — setelan werase pada tty.
24 18 030 00011000 CAN Cancel ^X  ECMA-48 memakainya untuk membatalkan urutan kendali yang belum selesai; terminal membuang urutan yang sedang diurai.
25 19 031 00011001 EM End of Medium ^Y  Jarang dipakai sekarang; di BSD dan macOS Ctrl+Y adalah penangguhan tertunda.
26 1A 032 00011010 SUB Substitute ^Z  Penanda akhir berkas pada berkas teks CP/M dan DOS, itulah sebabnya konsol Windows mengakhiri masukan dengan Ctrl+Z.
27 1B 033 00011011 ESC Escape ^[  Awal dari setiap urutan escape ANSI: \033[0m mengatur ulang warna, \033[2J membersihkan layar. Ctrl+[ juga mengirimnya.
28 1C 034 00011100 FS File Separator ^\  Pembingkaian MLLP pada HL7 v2 memakainya sebagai penutup blok; Ctrl+\ mengirim SIGQUIT.
29 1D 035 00011101 GS Group Separator ^]  Pada barcode GS1, pemisah FNC1 adalah bita ini — pemisah tak terlihat yang dikeluarkan pemindai Anda.
30 1E 036 00011110 RS Record Separator ^^  JSON Text Sequences pada RFC 7464 mengawali setiap rekaman dengannya. Salah satu dari sedikit penggunaan modern yang masih hidup.
31 1F 037 00011111 US Unit Separator ^_  Pemisah field pada teks terstruktur, lebih aman daripada koma karena hampir tidak pernah muncul di muatannya.
32 20 040 00100000 Space  
33 21 041 00100001 Exclamation Mark !
34 22 042 00100010 Quotation Mark "
35 23 043 00100011 Number Sign #
36 24 044 00100100 Dollar Sign $
37 25 045 00100101 Percent Sign %
38 26 046 00100110 Ampersand &
39 27 047 00100111 Apostrophe '
40 28 050 00101000 Left Parenthesis (
41 29 051 00101001 Right Parenthesis )
42 2A 052 00101010 Asterisk *
43 2B 053 00101011 Plus Sign +
44 2C 054 00101100 Comma ,
45 2D 055 00101101 Hyphen-Minus -
46 2E 056 00101110 Full Stop .
47 2F 057 00101111 Solidus /
48 30 060 00110000 Digit Zero 0
49 31 061 00110001 Digit One 1
50 32 062 00110010 Digit Two 2
51 33 063 00110011 Digit Three 3
52 34 064 00110100 Digit Four 4
53 35 065 00110101 Digit Five 5
54 36 066 00110110 Digit Six 6
55 37 067 00110111 Digit Seven 7
56 38 070 00111000 Digit Eight 8
57 39 071 00111001 Digit Nine 9
58 3A 072 00111010 Colon :
59 3B 073 00111011 Semicolon &#59;
60 3C 074 00111100 Less-Than Sign <
61 3D 075 00111101 Equals Sign =
62 3E 076 00111110 Greater-Than Sign >
63 3F 077 00111111 Question Mark ?
64 40 100 01000000 Commercial At @
65 41 101 01000001 Latin Capital Letter A A
66 42 102 01000010 Latin Capital Letter B B
67 43 103 01000011 Latin Capital Letter C C
68 44 104 01000100 Latin Capital Letter D D
69 45 105 01000101 Latin Capital Letter E E
70 46 106 01000110 Latin Capital Letter F F
71 47 107 01000111 Latin Capital Letter G G
72 48 110 01001000 Latin Capital Letter H H
73 49 111 01001001 Latin Capital Letter I I
74 4A 112 01001010 Latin Capital Letter J J
75 4B 113 01001011 Latin Capital Letter K K
76 4C 114 01001100 Latin Capital Letter L L
77 4D 115 01001101 Latin Capital Letter M M
78 4E 116 01001110 Latin Capital Letter N N
79 4F 117 01001111 Latin Capital Letter O O
80 50 120 01010000 Latin Capital Letter P P
81 51 121 01010001 Latin Capital Letter Q Q
82 52 122 01010010 Latin Capital Letter R R
83 53 123 01010011 Latin Capital Letter S S
84 54 124 01010100 Latin Capital Letter T T
85 55 125 01010101 Latin Capital Letter U U
86 56 126 01010110 Latin Capital Letter V V
87 57 127 01010111 Latin Capital Letter W W
88 58 130 01011000 Latin Capital Letter X X
89 59 131 01011001 Latin Capital Letter Y Y
90 5A 132 01011010 Latin Capital Letter Z Z
91 5B 133 01011011 Left Square Bracket [
92 5C 134 01011100 Reverse Solidus \
93 5D 135 01011101 Right Square Bracket ]
94 5E 136 01011110 Circumflex Accent ^
95 5F 137 01011111 Low Line _
96 60 140 01100000 Grave Accent `
97 61 141 01100001 Latin Small Letter A a
98 62 142 01100010 Latin Small Letter B b
99 63 143 01100011 Latin Small Letter C c
100 64 144 01100100 Latin Small Letter D d
101 65 145 01100101 Latin Small Letter E e
102 66 146 01100110 Latin Small Letter F f
103 67 147 01100111 Latin Small Letter G g
104 68 150 01101000 Latin Small Letter H h
105 69 151 01101001 Latin Small Letter I i
106 6A 152 01101010 Latin Small Letter J j
107 6B 153 01101011 Latin Small Letter K k
108 6C 154 01101100 Latin Small Letter L l
109 6D 155 01101101 Latin Small Letter M m
110 6E 156 01101110 Latin Small Letter N n
111 6F 157 01101111 Latin Small Letter O o
112 70 160 01110000 Latin Small Letter P p
113 71 161 01110001 Latin Small Letter Q q
114 72 162 01110010 Latin Small Letter R r
115 73 163 01110011 Latin Small Letter S s
116 74 164 01110100 Latin Small Letter T t
117 75 165 01110101 Latin Small Letter U u
118 76 166 01110110 Latin Small Letter V v
119 77 167 01110111 Latin Small Letter W w
120 78 170 01111000 Latin Small Letter X x
121 79 171 01111001 Latin Small Letter Y y
122 7A 172 01111010 Latin Small Letter Z z
123 7B 173 01111011 Left Curly Bracket {
124 7C 174 01111100 Vertical Line |
125 7D 175 01111101 Right Curly Bracket }
126 7E 176 01111110 Tilde ~
127 7F 177 01111111 DEL Delete ^?  Inilah yang sebenarnya dikirim tombol Backspace Anda di kebanyakan terminal. Namanya berasal dari pita kertas: tujuh lubang terlubangi semua.

Kolom biner dipadkan menjadi 8 bit agar mudah dibaca. ASCII sendiri adalah kode 7 bit — bit teratasnya selalu 0, dan justru itulah yang membuat UTF-8 tetap kompatibel mundur dengannya.

Bagaimana dengan 128–255?

ASCII sama sekali tidak mendefinisikan 128–255. „Extended ASCII" bukan nama standar mana pun — itu istilah longgar untuk satu keluarga besar pengodean 8 bit. Bita yang sama adalah karakter berbeda di masing-masing:

Bita ISO-8859-1 Windows-1252 CP437 CP866
0x80 U+0080 Kontrol C1 (tidak terlihat) Ç А
0x93 U+0093 Kontrol C1 (tidak terlihat) ô У
0xB0 ° °
0xE9 é é Θ щ
0xFF ÿ ÿ U+00A0 U+00A0
Klasifikasi karakter diperiksa silang terhadap kategori Unicode sendiri saat pengujian, dan pemetaan Windows-1252 diverifikasi bita demi bita terhadap dekoder platform. — Tim Teknik Go-Tools · Sep 2, 2026

Setiap nilai dalam tabel dihasilkan oleh satu mesin yang sama, yang dijalankan baik oleh server maupun oleh peramban, sehingga apa yang dibaca perayap dan apa yang Anda gunakan tidak mungkin berbeda. Perbedaan escape antarbahasa diverifikasi dengan mengompilasi dan menjalankan kodenya di tiap bahasa, bukan dikutip dari ingatan.

Rujukan cepat

Berapa kode ASCII untuk huruf A?

A = 65 Huruf kapital `A` adalah 65 dalam desimal, `0x41` dalam heksadesimal, `101` dalam oktal, dan `01000001` dalam biner. Huruf kecil `a` adalah 97 — tepat 32 lebih besar, dan itu hanya satu bit.

Ada berapa karakter dalam ASCII?

128 128, bernomor 0 sampai 127. Terdiri dari 32 karakter kontrol, 95 karakter grafis termasuk spasi, dan DEL.

Apa itu ASCII 0?

0 = NUL NUL, karakter null. Ia mengakhiri string di C, memisahkan nama berkas pada `find -print0`, dan membuat `grep` memperlakukan sebuah berkas sebagai biner.

Bita mana yang merupakan baris baru?

LF = 10, CR = 13 Line feed adalah 10 (`0x0A`, `\n`). Carriage return adalah 13 (`0x0D`, `\r`). Akhir baris Windows memakai keduanya, dengan CR lebih dulu.

Apa itu ASCII?

ASCII adalah pengodean karakter 7 bit — 128 titik kode, bernomor 0 sampai 127, tidak lebih. Ia pertama kali diterbitkan sebagai ASA X3.4-1963 dan bentuk terkininya adalah ANSI X3.4-1986; RFC 20 menjelaskan penggunaannya di internet dan pada 2015 dinaikkan menjadi Internet Standard STD 80. Versi pertamanya sama sekali tidak punya huruf kecil; huruf kecil baru datang pada revisi 1967. Segala sesuatu di atas 127 adalah milik pengodean lain, bukan milik ASCII.

0x00-0x1F   32 C0 control characters
0x20         1 space (a graphic character, not a control)
0x21-0x7E   94 printable graphic characters
0x7F         1 DEL (a control character, but not part of C0)
            ---
            128 total

Apa yang diberikan tabel ini

Empat basis berdampingan

Desimal, heksadesimal, oktal, dan biner 8 bit untuk setiap satu dari 128 titik kode, lengkap dengan nol di depan yang mengingatkan bahwa ASCII sebenarnya 7 bit.

Escape sequence per bahasa

Kolom \0 \a \b \t \n \v \f \r plus perbedaan yang benar-benar merusak build — JavaScript tidak punya \a, Java tidak punya \a maupun \v, dan \e adalah ekstensi GNU, bukan ISO C.

Notasi caret

Kolom ^@ sampai ^?, beserta satu aturan yang mencakup ke-33 karakter kontrol: XOR bita dengan 0x40. Bukan tambah, bukan kurang — XOR.

Di mana Anda benar-benar menemui tiap karakter kontrol

Bukan sekadar „SOH — start of heading", melainkan bahwa protokol FIX memakainya sebagai pemisah field, bahwa 0x1D adalah pemisah tak terlihat yang dikeluarkan pemindai barcode Anda, dan bahwa Ctrl+S yang membekukan terminal itu adalah XOFF.

Konverter yang menolak menebak

Basis Anda yang pilih. Bita di atas 127 ditolak disertai catatan bagaimana bita itu terbaca dalam Windows-1252 dan ISO-8859-1, alih-alih diloloskan sebagai ASCII.

Karakter kontrol tetap terlihat

NUL, TAB, dan CR tidak punya bentuk gambar, jadi pratinjau menampilkannya sebagai Unicode Control Pictures. Tombol salin tetap memberi Anda bita aslinya.

Pengodean terkait

ISO/IEC 8859-1 (Latin-1)

8 bit, satu bita

Mempertahankan 0–127 identik dengan ASCII dan mendefinisikan 96 karakter grafis dari 0xA0 sampai 0xFF. Rentang 0x800x9F diserahkan kepada karakter kontrol C1 yang tidak terlihat.

Windows-1252

8 bit, satu bita

Superset dari ISO-8859-1 yang satu-satunya perbedaannya ada di 0x800x9F: di sana ia menaruh 27 karakter tercetak dan menyisakan 5 posisi tanpa definisi. Peramban memakainya setiap kali sebuah halaman mengaku ISO-8859-1.

CP437

8 bit, satu bita

Code page asli IBM PC. Paruh atasnya berisi huruf beraksen, huruf Yunani, dan karakter penggambar kotak — itulah tabel yang Anda lihat di artikel yang menjanjikan 256 karakter ASCII.

UTF-8

Variabel, 1–4 bita

Mengodekan seluruh Unicode sambil menjaga setiap bita ASCII tetap identik bita demi bita. Kompatibel mundur dengan US-ASCII, tetapi tidak dengan satu pun code page 8 bit di atas.

Contoh

Teks menjadi kode desimal

Hello
72 101 108 108 111

Setiap karakter menjadi titik kode desimalnya. Huruf kapital menempati 65–90 dan huruf kecil 97–122 — selisihnya tepat 32, itulah sebabnya membalik bit kelima mengubah besar-kecil huruf.

Kode yang sama dibaca dalam dua basis

41 42 43
heksadesimal -> ABC     desimal -> )*+

Inilah alasan konverter ini tidak pernah menebak basis untuk Anda. Kedua pembacaan sama-sama sah; hanya Anda yang tahu mana yang Anda maksud.

Karakter kontrol selamat dalam perjalanan bolak-balik

9 10 13 0
TAB, LF, CR, NUL

Karakter ini tidak terlihat di kotak keluaran, jadi baris pratinjau menampilkannya sebagai karakter Unicode Control Pictures. Tombol salin tetap menyalin bita aslinya, bukan penggantinya.

Bita di atas 127 ditolak, disertai penjelasan

233
Di luar ASCII (0-127)

233 bukan kode ASCII. Alat ini memberi tahu bahwa bita tersebut terbaca é baik dalam Windows-1252 maupun ISO-8859-1, tetapi tidak akan mengakuinya sebagai ASCII.

Cara memakai

  1. 1

    Pilih basis bilangan

    Desimal, heksadesimal, oktal, atau biner. Lakukan ini lebih dulu — angka yang sama terurai berbeda di tiap basis, dan alat ini sengaja tidak menebak.

  2. 2

    Ketik di sisi mana pun

    Teks di satu kolom, kode di kolom lain. Di mana pun Anda mengetik, kolom satunya ikut diperbarui.

  3. 3

    Baca peringatannya

    Karakter di luar 0–127 didaftar lengkap dengan titik kode dan bita UTF-8-nya, bukan dibuang diam-diam atau diubah menjadi tanda tanya.

  4. 4

    Pakai tabel sebagai rujukan

    Saring hanya ke karakter kontrol, cari berdasarkan kode atau nama, dan klik karakter mana pun untuk menyalinnya.

Kekeliruan yang perlu diketahui

Mengklaim ASCII punya 256 karakter

ASCII berhenti di 127. Segala sesuatu di luarnya milik sebuah code page 8 bit tertentu yang harus disebut namanya. Python akan mengatakannya langsung kalau Anda memintanya mengodekan huruf beraksen sebagai ASCII.

✗ Salah
'cafe\u00e9'.encode('ascii')  # UnicodeEncodeError: ordinal not in range(128)
✓ Benar
'cafe\u00e9'.encode('utf-8')   # b'cafe\xc3\xa9'

Menganggap semua bahasa punya escape yang sama

JavaScript tidak punya escape \a. Alih-alih gagal, ia membuang backslash-nya dan menyisakan hurufnya, dan strict mode pun tidak menolong.

✗ Salah
"\a".charCodeAt(0)   // 97 - that is the letter 'a', not BEL
✓ Benar
"\x07".charCodeAt(0) // 7 - BEL

Menjelaskan notasi caret sebagai penjumlahan

Menambah 0x40 berhasil untuk rentang C0 lalu patah di DEL, yang justru menuntut pengurangan. XOR adalah satu-satunya aturan yang mencakup ke-33-nya.

✗ Salah
caret = chr(code + 0x40)   # 0x7F + 0x40 overflows past the table
✓ Benar
caret = chr(code ^ 0x40)   # 0x00 -> @, 0x1B -> [, 0x7F -> ?

Kapan Anda membutuhkannya

Membaca hex dump atau jejak protokol
Anda punya sederet bita dan perlu tahu mana yang tercetak, mana pemisah, dan mana kode kontrol yang diam-diam dijalankan terminal.
Menelusuri berkas yang bertingkah aneh
Sebuah CR nyasar di ujung tiap baris, sebuah NUL yang membuat grep menyebut berkas itu biner, atau spasi di tempat Makefile menuntut TAB sungguhan.
Menulis parser atau validator
Menentukan rentang bita mana yang diterima, dan menempatkan batasnya dengan benar — 0x210x7E untuk karakter grafis, 0x20 untuk spasi, 0x7F untuk DEL.
Menjelaskan bug pengodean
Menunjukkan kepada rekan kerja mengapa bita yang sama muncul sebagai tiga karakter berbeda, tergantung code page yang diasumsikan pembacanya.

Detail teknis

ASCII, Unicode, dan UTF-8
128 titik kode pertama Unicode, U+0000 sampai U+007F, berpadanan satu-satu dengan ASCII. UTF-8 mengodekannya sebagai bita tunggal 0x000x7F dengan bit teratas nol. Sifat yang benar-benar penting adalah yang ketiga: setiap bita dari urutan UTF-8 multibita punya bit teratas bernilai 1, sehingga bita di rentang 0–127 tidak akan pernah menjadi bagian dari karakter non-ASCII. Itulah yang membuat pemindaian UTF-8 bita demi bita untuk mencari /, \0, atau \n tetap aman.
Bit kedelapan
ASCII mendefinisikan kode 7 bit; menyimpan satu karakter per bita 8 bit adalah konvensi penyimpanan, dan secara historis bit sisa itu sering dipakai sebagai bit paritas. Transport surel yang hanya menjamin transparansi 7 bit adalah alasan keberadaan Base64 dan quoted-printable.
Mengapa alfabetnya ditata seperti itu
Angka 09 berada di 0x300x39, sehingga nibble bawahnya adalah nilai angkanya sendiri. A adalah 0x41 dan a adalah 0x61 — berjarak satu bit, sehingga c | 0x20 mengecilkan huruf dan c & 0xDF membesarkannya. Tetapi hanya untuk huruf: '_' | 0x20 menghasilkan 0x7F, yaitu DEL, dan '[' | 0x20 menghasilkan {.
Varian nasional dan masalah 0x5C
ISO/IEC 646 mengizinkan 12 titik kode ditukar menurut negara. JIS X 0201 Jepang menaruh simbol yen di 0x5C, KS X 1003 Korea menaruh simbol won di sana — itulah sebabnya Windows berbahasa Jepang menampilkan path dengan simbol yen padahal bitanya tetap 0x5C. Di Shift_JIS keadaannya lebih buruk: bita kedua dari sebuah karakter dua bita bisa saja 0x5C itu sendiri; karakter 表, ソ, 十, 能, 構, dan 暴 semuanya berakhir dengannya, sehingga penanganan backslash yang naif memotongnya menjadi dua.

Cara menulisnya dengan benar

Sebut nama code page-nya, selalu
„Extended ASCII" tidak memberi tahu pembaca apa pun. Sebutlah Windows-1252, atau ISO-8859-1, atau CP437 — bita yang sama adalah karakter berbeda di masing-masing.
Tulis US-ASCII kalau itu yang Anda maksud
Itulah nama yang terdaftar di IANA. charset=ascii bukan nama itu, dan di peramban charset=ISO-8859-1 justru akan memberi Anda Windows-1252, karena WHATWG Encoding Standard memetakan label itu demikian.
Jangan pernah menebak basis untuk pengguna
Kalau alat atau parser Anda diam-diam memutuskan bahwa 41 itu heksadesimal, ia akan salah kira-kira separuh waktu dan kegagalannya senyap.
Iterasi per titik kode, bukan per unit UTF-16
"A" ditambah kunci G musik ditambah satu aksara Tionghoa punya .length === 4 padahal karakternya hanya tiga. Pakai [...str] atau codePointAt, atau pesan „karakter tidak didukung" Anda akan melaporkan sebuah emoji sebagai dua potongan rusak.

Pertanyaan umum

Ada berapa karakter dalam ASCII?
128. ASCII adalah kode 7 bit, jadi ia mendefinisikan persis titik kode 0 sampai 127: 32 karakter kontrol C0, 95 karakter grafis termasuk spasi, dan DEL. Artikel berjudul „tabel ASCII lengkap (256 karakter)" sebenarnya menunjukkan sebuah code page 8 bit tertentu — biasanya CP437 atau Windows-1252 — bukan ASCII.
Apa itu extended ASCII?
Secara ketat, tidak ada. „Extended ASCII" bukan nama standar mana pun; itu istilah longgar untuk satu keluarga besar pengodean 8 bit yang mempertahankan 0–127 tetap sama dan mendefinisikan 128–255 secara berbeda-beda. Bita 0xE9 adalah é dalam ISO-8859-1, huruf Yunani Θ dalam CP437, dan sebuah huruf Kiril dalam CP866. Tanpa menyebut code page-nya, pertanyaan itu tidak punya jawaban.
Apakah Windows-1252 sama dengan ISO-8859-1?
Keduanya identik dari 0xA0 sampai 0xFF, dan sama sekali berbeda dari 0x80 sampai 0x9F. ISO-8859-1 menyerahkan rentang itu kepada karakter kontrol C1 yang tidak terlihat; Windows-1252 menaruh 27 karakter tercetak di sana — simbol euro, tanda kutip melengkung, tanda pisah en dan em — dan menyisakan 5 posisi tanpa definisi. Karena itulah tanda kutip melengkung yang disalin dari pengolah kata berubah menjadi karakter kontrol tak terlihat ketika melewati sesuatu yang benar-benar ISO-8859-1.
Apakah DEL termasuk karakter kontrol?
Ya. Unicode mengklasifikasikan U+007F sebagai Cc, dan iscntrl(127) di C bernilai benar. Ia hanya bukan bagian dari himpunan C0, yang secara ketat adalah 0x000x1F. Posisinya di ujung tabel berasal dari pita kertas: 0x7F berarti tujuh lubang terlubangi semua, dan lubang yang sudah dibuat tidak bisa ditutup lagi, sehingga „semua lubang dibuat" adalah satu-satunya cara menandai sebuah karakter sebagai terhapus.
Apakah karakter spasi termasuk karakter kontrol?
Bukan, dan banyak tabel ASCII keliru di titik ini. Unicode mengklasifikasikan spasi (0x20) sebagai Zs, yaitu pemisah spasi, yang merupakan karakter grafis. Karakter kontrol hanyalah 0x000x1F dan 0x7F.
Kenapa kolom biner menampilkan 8 bit kalau ASCII itu 7 bit?
Karena bita adalah satuan tempat semuanya benar-benar disimpan — bit teratasnya memang selalu 0. Padding itu bukan sekadar kosmetik: justru karena ASCII tidak pernah memakai bit kedelapan, UTF-8 bisa mengklaimnya sebagai penanda „ini bagian dari urutan multibita", dan itulah yang membuat UTF-8 kompatibel mundur dengan ASCII.
Apakah semua bahasa menulis karakter kontrol dengan cara yang sama?
Tidak, dan perbedaannya menggigit. \a (bel) adalah standar di C dan Python, tetapi JavaScript tidak punya escape itu'\a' diam-diam menjadi huruf a, tanpa galat bahkan dalam strict mode. Java menolak \a maupun \v. Go menolak \0 karena escape oktalnya harus tepat tiga digit, jadi Anda menulis \000. Sementara \e untuk ESC adalah ekstensi GNU, bukan ISO C.
Apa arti ^M di git diff atau di vim?
Itu carriage return, bita 13. Notasi caret menuliskan karakter kontrol dengan mem-XOR nilainya dengan 0x40, sehingga CR (0x0D) menjadi ^M dan ESC (0x1B) menjadi ^[. Melihat ^M di ujung setiap baris berarti berkas itu memakai akhir baris CRLF milik Windows; melihat bad interpreter: /bin/bash^M berarti sebuah skrip shell ikut membawanya.