ตารางอ้างอิง ASCII

ทุกตัวอักษรที่พิมพ์ได้ซึ่งคุณพิมพ์เป็นภาษาอังกฤษจะแมปไปยังตัวเลขระหว่าง 32 และ 126 ในมาตรฐาน ASCII เจ็ดบิต ต่ำกว่า 32 และที่ 127 คือรหัสควบคุมเช่น LF, CR, ESC, DEL และตัวอื่น ๆ ที่ยังสำคัญเมื่อต้องดีบักโปรโตคอลอนุกรมหรือแก้การจบบรรทัด ตารางอ้างอิงนี้ให้โค้ดพอยต์ทุกค่าตั้งแต่ 0 ถึง 127 พร้อมรูปแบบฐานสิบ, ฐานสิบหก, ฐานแปด, ฐานสอง และ HTML entity

วิธีใช้ตาราง ASCII

  1. 1

    ไล่ดูแถวของตัวอักษรที่ต้องการ

    ค้นด้วยตัวอักษร สัญลักษณ์ หรือชื่อโค้ดพอยต์ รหัสควบคุมแสดงด้วยตัวย่อสามตัวอักษร

  2. 2

    อ่านข้ามแถวไปยังการเข้ารหัสที่ต้องการ

    ฐานสิบสำหรับโค้ดที่อ่านง่าย, ฐานสิบหกสำหรับซอร์สโค้ด, ฐานสองสำหรับงานโปรโตคอล, HTML entity สำหรับมาร์กอัป

  3. 3

    คัดลอกเซลล์ใดก็ได้

    มีประโยชน์เมื่อคุณได้ hex dump หรือลำดับไบต์มาแล้วต้องรู้ว่ามันอ่านว่าอะไร

ASCII สามช่วง

ช่วง ฐานสิบ เนื้อหา
ควบคุม 0-31, 127 NUL, BEL, BS, HT, LF, VT, FF, CR, ESC, DEL และอื่น ๆ
พิมพ์ได้ 32-126 ช่องว่าง, เครื่องหมายวรรคตอน, ตัวเลข, A-Z, a-z
ขยาย (ไม่ใช่ ASCII) 128+ ขึ้นกับการเข้ารหัส; ASCII หยุดที่ 127 อย่างเคร่งครัด

รหัสควบคุมที่ยังสำคัญ

  • 0x00 NUL, ตัวจบสตริงใน C, การเติมในรูปแบบไบนารีบางชนิด
  • 0x07 BEL, สั่งให้กระดิ่งเทอร์มินัลดัง
  • 0x08 BS, Backspace (ลบถอยหลัง)
  • 0x09 HT, แท็บแนวนอน
  • 0x0A LF, Line feed, การขึ้นบรรทัดใหม่ของ Unix
  • 0x0D CR, Carriage return; จับคู่กับ LF บน Windows เป็น CRLF
  • 0x1B ESC, เริ่มลำดับ ANSI escape สำหรับสีเทอร์มินัล
  • 0x7F DEL, เดิมคือรหัสสำหรับเจาะรูเทป; ปัจจุบันใช้น้อย

ASCII กับ Unicode

Unicode กำหนดโค้ดพอยต์ 128 ค่าแรกให้มีความหมายตรงกับ ASCII และ UTF-8 ก็เข้ารหัสค่าเหล่านี้ด้วยไบต์เดี่ยวค่าเดียวกัน ดังนั้นไฟล์ UTF-8 ที่มีเฉพาะอักขระ ASCII จึงตรงกับการแทนค่าแบบ ASCII ทุกไบต์ อย่างไรก็ตาม การเข้ารหัสอักขระไม่ได้ใช้ค่าไบต์แบบ ASCII ทุกชนิด โดย EBCDIC เป็นตัวอย่างที่ชัดเจน

การแปลงที่พบบ่อย

  • ฐานสิบเป็นฐานสิบหก: 65 (ฐานสิบ) = 0x41 = A
  • ฐานสิบหกเป็นฐานสอง: 0x41 = 0100 0001
  • ฐานสิบหกเป็น HTML entity: A หรือ A ทั้งคู่แสดงผลเป็น A

คำถามที่พบบ่อย

ASCII เป็นรหัส 7 บิต จึงเหลือบิตที่แปดของไบต์ไว้สำหรับพาริตีหรือการขยาย ค่า 128-255 เป็นพื้นที่ของรูปแบบ “extended ASCII” (Latin-1, Windows-1252, MacRoman ฯลฯ) ซึ่งไม่เข้ากันเอง นี่เป็นส่วนหนึ่งของเหตุผลที่ Unicode ชนะ

LF (0x0A) เลื่อนลงหนึ่งบรรทัด; CR (0x0D) เลื่อนเคอร์เซอร์กลับไปคอลัมน์ศูนย์ บน Unix การขึ้นบรรทัดใหม่คือ LF อย่างเดียว; บน Mac รุ่นเก่าเคยเป็น CR อย่างเดียว; บน Windows และ HTTP header คือ CR ตามด้วย LF (CRLF) ความไม่ตรงกันเหล่านี้เป็นสาเหตุคลาสสิกของข้อความเว้นบรรทัดซ้อนหรือไหลติดกันระหว่างระบบ

ตัวพิมพ์ใหญ่ ASCII อยู่ในช่วง 65-90 และตัวพิมพ์เล็กอยู่ในช่วง 97-122 ซึ่งต่างกันพอดี 0x20 หลังจากตรวจสอบก่อนว่าไบต์นั้นเป็นตัวอักษร ASCII จึงสามารถตั้งค่า ล้างค่า หรือสลับบิต 0x20 เพื่อเปลี่ยนตัวพิมพ์ได้ การใช้ XOR 0x20 กับไบต์ใด ๆ โดยไม่ตรวจสอบนั้นไม่ปลอดภัย เพราะตัวเลข เครื่องหมายวรรคตอน และรหัสควบคุมจะเปลี่ยนไปด้วย

ใช้: LF และ CR ในไฟล์ข้อความ, HT และ FF ในซอร์สโค้ดและเทอร์มินัล, ESC ในลำดับสี ANSI, BEL ในกระดิ่งและการแจ้งเตือนของเทอร์มินัล ส่วน NUL ยังใช้จบสตริงใน C ที่เหลือส่วนใหญ่เป็นมรดกจากยุคเครื่องโทรพิมพ์

เครื่องมือที่เกี่ยวข้อง

ตัวลดรูปพีชคณิตบูลีน

ลดรูปนิพจน์บูลีนด้วยแผนผัง Karnaugh และอัลกอริทึม Quine-McCluskey แสดงทุกขั้นตอนการลดรูปและผลลัพธ์สุดท้ายในรูป SOP/POS

เลขฐานสองเป็นฐานสิบ

แปลงเลขฐานสองเป็นฐานสิบได้ทันที แสดงการกระจายตามตำแหน่งเพื่อให้เห็นว่าแต่ละบิตมีส่วนอย่างไร

เครื่องสร้างตัวอักษรสุ่ม

สร้างตัวอักษร A-Z แบบสุ่ม เลือกจำนวน ตัวพิมพ์ใหญ่ ตัวพิมพ์เล็ก หรือแบบผสม แล้วใช้กับเกม โจทย์ หรือกิจกรรมในห้องเรียน

ตัวแปลง ASCII เป็นเลขฐานสอง

แปลงสตริง ASCII ใดก็ได้เป็นเลขฐานสอง อักขระทุกตัวกลายเป็นแปดบิต คั่นด้วยช่องว่าง พร้อมวางในการติดตามโปรโตคอลหรือการบ้าน

ตัวแปลง ASCII เป็น Hex

แปลงข้อความ ASCII เป็นค่า byte แบบ hexadecimal output ใช้ hex digits สองตัวต่อ character พร้อมสำหรับ memory dumps, packet traces หรือ firmware tables

ตัวแปลงไบนารีเป็น ASCII

วางข้อมูลไบนารี (ไบต์ที่คั่นด้วยช่องว่าง หรือบิตสตรีมยาวๆ) แล้วรับข้อความ ASCII ที่แทนค่านั้น รองรับการเข้ารหัสแบบ 7 บิตและ 8 บิต