nicetool.dev logo

แปลงเลขฐาน

พิมพ์ในช่องใดก็ได้ ช่องอื่นจะอัปเดตตาม รองรับคำนำหน้า 0b, 0o, 0x และตัวคั่นหลัก

8 บิต1 ไบต์พอดีกับ 8 บิต

Two's complement

8 บิต1111 11110xFF
16 บิต0000 0000 1111 11110x00FF
32 บิต0000 0000 0000 0000 0000 0000 1111 11110x000000FF
64 บิต0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1111 11110x00000000000000FF

แสดงวิธีเก็บค่าในจำนวนเต็มขนาดคงที่ จำนวนลบใช้ two's complement ส่วนค่าที่เกินค่าสูงสุดแบบมีเครื่องหมายจะแสดงเป็นแบบไม่มีเครื่องหมาย

เลขฐานคืออะไร?

เลขฐานคือจำนวนตัวเลขที่ระบบเลขแบบประจำหลักใช้ คนเรานับด้วยฐานสิบ คอมพิวเตอร์เก็บข้อมูลเป็นฐานสอง และโปรแกรมเมอร์อ่านที่อยู่หน่วยความจำ สี และค่าไบต์เป็นฐานสิบหก เพราะเลขฐานสิบหกหนึ่งหลักเท่ากับสี่บิตพอดี เครื่องมือนี้ใช้จำนวนเต็มความแม่นยำไม่จำกัด ค่าขนาด 64 บิตหรือใหญ่กว่าจึงแปลงได้ตรงทุกหลักโดยไม่ปัดเศษ

คุณสมบัติ

  • • แสดงฐานสอง ฐานแปด ฐานสิบ และฐานสิบหกพร้อมกัน รวมถึงฐาน 2 ถึง 36
  • • จำนวนเต็มขนาดไม่จำกัดด้วย BigInt รวมถึงจำนวนลบ
  • • รองรับคำนำหน้า 0b, 0o, 0x และช่องว่างหรือขีดล่างระหว่างหลัก
  • • จำนวนบิตและไบต์ การจัดกลุ่มหลัก และฐานสิบหกตัวพิมพ์ใหญ่
  • • ดู two's complement ของจำนวนเต็ม 8, 16, 32 และ 64 บิต

รวดเร็วและเป็นส่วนตัว

การแปลงทั้งหมดทำงานในเบราว์เซอร์ขณะที่คุณพิมพ์ ไม่มีตัวเลขใดถูกส่งไปยังเซิร์ฟเวอร์

คำนวณแม่นยำด้วย BigInt ทำงานฝั่งไคลเอนต์ 100%

วิธีใช้ แปลงเลขฐาน

  1. 1

    พิมพ์ตัวเลขลงในช่องใดก็ได้ ได้แก่ ฐานสอง ฐานแปด ฐานสิบ ฐานสิบหก หรือฐานที่กำหนดเอง รองรับคำนำหน้า 0x, 0b, 0o และตัวคั่นอย่าง 1_000 หรือช่องว่าง

  2. 2

    ช่องอื่นจะอัปเดตทันที ในช่องกำหนดเองเลือกฐานใดก็ได้ตั้งแต่ 2 ถึง 36 เช่น ฐาน 36 สำหรับ ID สั้น ๆ

  3. 3

    เปิดการจัดกลุ่มหลักเพื่ออ่านค่ายาว ๆ (ฐานสองทีละ 4 หลัก ฐานสิบหกทีละไบต์) และเลือกฐานสิบหกแบบตัวพิมพ์ใหญ่หรือเล็ก

  4. 4

    ดูจำนวนบิตและตาราง two's complement เพื่อดูว่าค่าถูกเก็บในจำนวนเต็ม 8, 16, 32 และ 64 บิตอย่างไร แล้วคัดลอกรูปแบบที่ต้องการ

ตัวอย่างการใช้งานจริง

อ่าน hex dump และรหัสสี

0xFF คือ 255 สี CSS #FF8000 จึงหมายถึงแดง 255 เขียว 128 และน้ำเงิน 0 การแปลงทีละไบต์ช่วยดีบักสีหรือรูปแบบไฟล์ไบนารี

สิทธิ์ไฟล์บน Unix

chmod 755 เป็นเลขฐานแปด แปลงเป็นฐานสองได้ 111 101 101 คือเจ้าของอ่าน เขียน และรันได้ ส่วนกลุ่มและคนอื่นอ่านและรันได้

บิตแฟล็กและมาสก์

แฟล็กที่เก็บเป็นจำนวนเต็มเข้าใจง่ายขึ้นในฐานสอง ค่า 13 คือ 1101 หมายถึงแฟล็กที่ 0, 2 และ 3 เปิดอยู่

จำนวนลบในโค้ดระดับล่าง

รหัสข้อผิดพลาด 0xFFFFFFFF จาก API ภาษา C คือ -1 เมื่อตีความเป็นจำนวนเต็มแบบมีเครื่องหมาย 32 บิต ตาราง two's complement แสดงทั้งสองการตีความ

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

ทำไมโปรแกรมเมอร์ใช้เลขฐานสิบหก?+

เลขฐานสิบหกหนึ่งหลักแทน 4 บิตพอดี สองหลักเท่ากับหนึ่งไบต์ ที่อยู่หน่วยความจำ สี แฮช และค่าไบต์จึงสั้นและอ่านง่ายกว่าฐานสองมาก

two's complement คืออะไร?+

คือวิธีมาตรฐานในการเก็บจำนวนเต็มแบบมีเครื่องหมาย บิตสูงสุดมีค่าน้ำหนักติดลบ ใน 8 บิต 11111111 จึงหมายถึง -1 และ 10000000 หมายถึง -128

มีขีดจำกัดขนาดหรือไม่?+

ในทางปฏิบัติไม่มี เครื่องมือใช้ BigInt ตัวเลขที่ใหญ่กว่า 64 บิตมากจึงแปลงได้ตรงทุกหลัก ต่างจากเครื่องคิดเลขที่เปลี่ยนเป็นทศนิยมลอยตัวและสูญเสียหลัก

ฐานที่มากกว่า 10 ใช้ตัวเลขอะไร?+

หลัง 0-9 จะใช้ตัวอักษร A-Z ฐาน 16 ใช้ 0-9 และ A-F ส่วนฐาน 36 ใช้ตัวเลขทั้งหมดและตัวอักษรทั้ง 26 ตัว การป้อนข้อมูลไม่สนตัวพิมพ์เล็กใหญ่