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

ไบนารี

เลขฐานแปดยังมีบทบาทอยู่ในสิทธิ์ไฟล์ Unix (chmod 755) คู่มือยุค PDP เก่า และชุดเครื่องมือพัฒนาไมโครคอนโทรลเลอร์บางตัว ตัวแปลงนี้รับสตริงเลขฐานสองใดก็ได้ จัดกลุ่มบิตครั้งละสามตัวจากขวา แล้วจับคู่แต่ละกลุ่มกับเลขฐานแปดตั้งแต่ 0 ถึง 7 — พร้อมตัวเลือกเติมศูนย์นำหน้าสำหรับภาษาที่ถือว่า 0755 เป็นค่าคงที่เลขฐานแปด

วิธีแปลงเลขฐานสองเป็นฐานแปด

  1. 1

    ป้อนค่าเลขฐานสอง

    ช่องว่างจะถูกตัดออก ความยาวเท่าใดก็ได้ กลุ่มซ้ายสุดจะถูกเติมศูนย์นำหน้าให้ครบสามบิตโดยอัตโนมัติ

  2. 2

    จัดกลุ่มบิตทีละสามจากขวา

    `111101100` กลายเป็น `111 101 100` ทิศทางการจัดกลุ่มสำคัญ — ต้องจากขวาไปซ้ายเสมอ

  3. 3

    จับคู่แต่ละกลุ่มสามบิต

    000 = 0, 001 = 1, 010 = 2 ไปจนถึง 111 = 7 ทุกกลุ่มสามบิตจับคู่กับเลขฐานแปดได้หนึ่งหลักพอดี

  4. 4

    อ่านและคัดลอกผลลัพธ์

    เลือกตัวเลขล้วน (`754`), แบบเติมศูนย์นำหน้า (`0754`) หรือแบบมี `0o` นำหน้า (`0o754`) เพื่อให้เข้ากับ Python 3 และ Rust

ตารางจับคู่สามบิตกับเลขฐานแปด

ฐานสอง ฐานแปด
000 0
001 1
010 2
011 3
100 4
101 5
110 6
111 7

ตัวอย่าง: สิทธิ์ไฟล์ Unix

rwxr-xr-x หมายความว่าเจ้าของมีสิทธิ์อ่าน/เขียน/รัน ส่วนกลุ่มและผู้อื่นมีสิทธิ์อ่าน/รัน ในรูปเลขฐานสองคือ 111 101 101 ซึ่งจัดกลุ่มออกมาเป็นเลขฐานแปด 755 ได้ตรงๆ — เลขเดียวกับที่ส่งให้ chmod

เลขฐานแปดมีประโยชน์เมื่อใด

  • สิทธิ์ไฟล์: chmod 644, umask 022, stat -c %a ล้วนใช้เลขฐานแปด
  • ลำดับหลีก (escape sequence): \100 ใน C คือเลขฐานแปดของ @ (64 ในฐานสิบ)
  • รหัสเครื่องรุ่นเก่า: เอกสาร PDP-8, PDP-11 และ DEC รุ่นแรกๆ ระบุรหัสคำสั่งเป็นเลขฐานแปด เพราะขนาดเวิร์ดเป็นพหุคูณของ 3 บิต
  • อ่านง่าย: การจัดกลุ่มสามบิตอ่านได้เร็วกว่าเลขฐานสอง โดยไม่ต้องใช้ตัวอักษรครบชุดแบบเลขฐานสิบหก

จุดที่พลาดง่าย

  • ศูนย์นำหน้าหมายถึงเลขฐานแปดใน C: 0755 คือเลขฐานแปด 755 (= 493 ในฐานสิบ) ส่วน 755 คือ 755 ในฐานสิบ ตรวจสอบภาษาของคุณก่อนวาง
  • JavaScript เลิกใช้เลขฐานแปดแบบเก่าแล้ว: โหมด strict จะปฏิเสธ 0755 ให้ใช้ 0o755 แทน
  • ทิศทางการจัดกลุ่ม: ถ้าจัดจากซ้ายไปขวา คุณจะได้คำตอบผิดสำหรับลำดับบิตใดๆ ที่ความยาวไม่เป็นพหุคูณของ 3

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

เพราะแฟล็กสิทธิ์มาเป็นกลุ่มละสามพอดี (อ่าน, เขียน, รัน) ต่อหนึ่งบทบาท (เจ้าของ, กลุ่ม, ผู้อื่น) แต่ละกลุ่มสามบิตจับคู่หนึ่งต่อหนึ่งกับเลขฐานแปดหนึ่งหลัก ดังนั้น rwxr-xr-x จึงอ่านเป็น 755 ได้ในขั้นเดียว

สำหรับ C, Perl และเชลล์ ให้ใช้ 0 นำหน้า สำหรับ Python 3, Rust และ Swift ให้ใช้ 0o สำหรับ chmod บนบรรทัดคำสั่ง ไม่ต้องใส่คำนำหน้า

เลขลบต้องมีความกว้างบิตแบบมีเครื่องหมาย (ทูคอมพลีเมนต์) กำหนดความกว้างก่อน ไม่เช่นนั้นตัวแปลงจะถือว่าอินพุตทั้งหมดเป็นแบบไม่มีเครื่องหมาย

ไม่ ตัวแปลงจะเติมศูนย์ให้กลุ่มซ้ายสุดจนครบสามบิต 1111 กลายเป็น 001 111 ซึ่งคือเลขฐานแปด 17

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

เครื่องมือสร้างสีแบบสุ่ม

สร้างสี HEX แบบสุ่ม 1 ถึง 50 สี พร้อมตัวอย่างสีสำหรับดูตัวอย่าง คัดลอก และนำไปใช้ใน CSS งานทดสอบ หรือการสำรวจพาเลตสี.

เครื่องกำเนิดจานสี

สร้างพาเลตสีแบบเอกรงค์ ใกล้เคียง คู่ตรงข้าม ไตรแอดิก หรือเตตราดิกจากสี HEX หลัก พร้อมส่งออกตัวแปร CSS ที่คัดลอกได้ทันที

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

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

ตัวจัดรูปแบบ JSON

วาง JSON เพื่อจัดให้อ่านง่ายด้วยการเยื้อง 2 หรือ 4 ช่องว่าง ย่อให้เป็นผลลัพธ์แบบกะทัดรัด หรือตรวจสอบไวยากรณ์อย่างรวดเร็วก่อนคัดลอกผลลัพธ์

เครื่องมือเลือกสี HEX

เลือกสีจากหน้าจอแล้วดูค่า HEX, RGB, HSL, HSV และ CMYK พร้อมค่าคอนทราสต์เมื่อเทียบกับสีขาวและสีดำ

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

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