วิธีใช้งาน
- เลือก “เข้ารหัส” เพื่อแปลงข้อความเป็นเลขฐานสิบ หรือ “ถอดรหัส” เพื่อแปลงตัวเลขกลับเป็นข้อความ
- พิมพ์หรือวางอินพุต หรือเปิดไฟล์ ผลลัพธ์จะอัปเดตทันทีขณะที่คุณพิมพ์
- เลือก “ตัวคั่น” สำหรับตัวเลข ได้แก่ “ช่องว่าง” “จุลภาค” หรือ “ขึ้นบรรทัดใหม่”
- คัดลอกตัวเลขหรือดาวน์โหลดเป็นไฟล์
ค่าไบต์เลขฐานสิบและรหัส ASCII
อักขระทุกตัวในคอมพิวเตอร์ถูกจัดเก็บเป็นไบต์ตั้งแต่หนึ่งไบต์ขึ้นไป และไบต์ก็คือตัวเลขตั้งแต่ 0 ถึง 255 เท่านั้น เครื่องมือนี้เขียนตัวเลขแต่ละตัวในรูปเลขฐานสิบทั่วไป สำหรับข้อความภาษาอังกฤษ ตัวเลขเหล่านี้คือรหัส ASCII ที่คุ้นเคย ตัวพิมพ์ใหญ่อยู่ระหว่าง 65 ถึง 90 ตัวพิมพ์เล็กอยู่ระหว่าง 97 ถึง 122 ตัวเลข 0 ถึง 9 อยู่ระหว่าง 48 ถึง 57 และช่องว่างคือ 32 อักขระควบคุมมีค่าต่ำกว่า 32 เช่น 10 คือการขึ้นบรรทัดใหม่ (line feed) และ 13 คือการปัดแคร่กลับ (carriage return)
ผลลัพธ์คือรายการเดียวกับที่ได้จาก ord() ใน Python หรือจากการอ่าน Uint8Array ใน JavaScript และเป็นวิธีที่สะดวกในการตรวจหาอักขระที่มองไม่เห็น อักขระท้ายบรรทัด หรือ byte order mark ในสตริง
หนึ่งตัวเลขต่อหนึ่งไบต์ ไม่ใช่ตัวเลขใหญ่ตัวเดียว
การแปลงทำทีละไบต์ คำที่มีสองตัวอักษรจะกลายเป็นตัวเลขสองตัว ไม่ใช่จำนวนเต็มตัวเดียว ค่าที่มากกว่า 127 ไม่มีทางปรากฏในข้อความ ASCII ส่วนใน UTF-8 ค่าเหล่านี้มาเป็นชุดละสองถึงสี่ไบต์ซึ่งรวมกันเป็นอักขระหนึ่งตัว ตัวอักษรที่มีเครื่องหมายเน้นเสียง อักษรไทย หรืออักษรจีนจึงให้ตัวเลขหลายตัว หากต้องการค่าเดียวต่ออักขระสำหรับข้อความภาษายุโรปตะวันตก ให้เลือก ISO-8859-1 ซึ่งค่าของแต่ละไบต์เท่ากับ code point ของอักขระใน Unicode หรือเลือก Windows-1252
หากต้องการแปลงตัวเลขเดี่ยวระหว่างเลขฐานแทน เช่น 255 เป็นเลขฐานสิบหก ให้ใช้ ตัวแปลงเลขฐาน หากต้องการดูไบต์ชุดเดียวกันในรูปแบบอื่น ลองใช้ เลขฐานสิบหก หรือ เลขฐานสอง
ค่าไบต์เลขฐานสิบในโค้ด
# Python
list('Hi'.encode()) # [72, 105]
bytes([72, 105]).decode() # 'Hi'
// JavaScript
[...new TextEncoder().encode('Hi')] // [72, 105]
new TextDecoder().decode(new Uint8Array([72, 105])) // 'Hi'
ข้อกำหนด
| ชุดตัวอักษร | 0-9 |
|---|---|
| ขนาดเอาต์พุต | 1 ถึง 3 หลักต่อไบต์ พร้อมตัวคั่น |
| แพดดิง | ไม่มี |
| มาตรฐาน | ค่าไบต์ในรูปเลขฐานสิบ |
| แยกตัวพิมพ์เล็ก-ใหญ่ | ไม่ใช่ |
ตัวอย่าง
| อินพุต (UTF-8) | เอาต์พุต |
|---|---|
Hello, World! | 72 101 108 108 111 44 32 87 111 114 108 100 33 |
Base64.is | 66 97 115 101 54 52 46 105 115 |
你好 | 228 189 160 229 165 189 |
คำถามที่พบบ่อย
รหัส ASCII เลขฐานสิบของ A คืออะไร
ตัว A พิมพ์ใหญ่คือ 65 และตัว a พิมพ์เล็กคือ 97 ทั้งใน ASCII และ UTF-8 ตัวอักษรถัดไปแต่ละตัวมีค่าเพิ่มขึ้นทีละหนึ่ง Z จึงเป็น 90 และ z เป็น 122
ถอดรหัสเลขฐานสิบที่ไม่มีตัวคั่นได้หรือไม่
ไม่ได้ ตัวเลขที่ต่อกันอย่าง 72105 แบ่งได้มากกว่าหนึ่งแบบ ตัวถอดรหัสจึงต้องให้ตัวเลขคั่นด้วยช่องว่าง จุลภาค อัฒภาค หรือการขึ้นบรรทัดใหม่ ส่วนเลขศูนย์นำหน้าใส่ได้
ทำไมตัวเลขที่มากกว่า 255 จึงเกิดข้อผิดพลาด
ไบต์หนึ่งเก็บค่าได้ตั้งแต่ 0 ถึง 255 ตัวเลขที่มากกว่านั้น เช่น code point 8364 ของเครื่องหมายยูโรใน Unicode ไม่ใช่ค่าไบต์ ให้พิมพ์อักขระนั้นโดยตรงแล้วเข้ารหัสเพื่อดูไบต์ของมัน เช่น ใน UTF-8
ทำไมอักขระตัวเดียวจึงกลายเป็นตัวเลขหลายตัว
UTF-8 จัดเก็บอักขระที่อยู่นอก ASCII เป็นสอง สาม หรือสี่ไบต์ และแต่ละไบต์จะกลายเป็นตัวเลขของตัวเอง หากต้องการตัวเลขเดียวต่ออักขระภาษายุโรปตะวันตก ให้เลือกชุดอักขระแบบไบต์เดียวอย่าง Windows-1252