0x30 เป็นทศนิยม = 48 — ตัวแปลง Hex เป็น Decimal
แปลงเลขฐานสิบหกเป็นเลขฐานสิบในคลิกเดียว เช่น 0x30=48, 0xFF=255, 0xA=10 พร้อมขั้นตอนคำนวณและตัวอย่างสำหรับโปรแกรมเมอร์
0x30 เป็นเลขฐานสิบ = 48 เพราะ 3×16 + 0×1 = 48 ใน ASCII ค่า 0x30 คืออักขระ '0' ซึ่งเป็นเหตุผลที่โปรแกรมเมอร์ค้นหาค่านี้บ่อย กรอกค่า hex ใดก็ได้ด้านบนเพื่อแปลงทันที
ตัวแปลง Hex เป็น Decimal
เลขฐานสิบหกหรือ hexadecimal เป็นระบบฐาน 16 ใช้สัญลักษณ์ 0-9 และ A-F โดย A=10, B=11, C=12, D=13, E=14, F=15 เครื่องมือนี้แปลงค่า hex เป็นเลขฐานสิบและแปลงกลับจากฐานสิบเป็น hex ได้ในช่องเดียว
ค่าที่พบได้บ่อย: 0xA = 10, 0x10 = 16, 0x64 = 100, 0xFF = 255
เข้าใจระบบเลขฐานสิบหก
Hex ใช้กันมากในคอมพิวเตอร์เพราะ 1 หลัก hex แทนข้อมูลไบนารี 4 บิตได้พอดี ทำให้เขียนข้อมูลไบนารีได้สั้นและอ่านง่ายกว่า
| ตำแหน่ง | 16³ | 16² | 16¹ | 16⁰ |
|---|---|---|---|---|
| ค่า | 4,096 | 256 | 16 | 1 |
วิธีแปลง: คูณแต่ละหลักด้วยค่าประจำตำแหน่งของฐาน 16 แล้วบวกผลรวม เช่น 2F4A₁₆ = 2×4096 + F(15)×256 + 4×16 + A(10)×1 = 10,106
ในภาษาโปรแกรมมักใช้คำนำหน้า 0x เช่น 0x2F4A เพื่อบอกว่าค่านั้นเป็นเลขฐานสิบหก
ตัวอย่าง 0x30 เป็นเลขฐานสิบ
ค่า 0x30 แปลงเป็นเลขฐานสิบได้ดังนี้:
- หลักขวาสุด: 0 × 16⁰ = 0 × 1 = 0
- หลักถัดไป: 3 × 16¹ = 3 × 16 = 48
- ผลรวม: 48 + 0 = 48
ใน ASCII ค่า 0x30 แทนอักขระตัวเลข '0' ส่วน '1' ถึง '9' อยู่ในช่วง 0x31-0x39
ค่า Hex ที่พบบ่อย
ตารางนี้รวมค่าที่นักพัฒนาใช้บ่อย:
| Hex | ฐานสิบ | การใช้งานทั่วไป |
|---|---|---|
0xA | 10 | ค่าตัวอักษรตัวแรกใน hex |
0x10 | 16 | ฐานของระบบเลขฐานสิบหก |
0x1F | 31 | ค่าสูงสุดของ 5 บิต |
0x30 | 48 | อักขระ ASCII '0' |
0x41 | 65 | อักขระ ASCII 'A' |
0x61 | 97 | อักขระ ASCII 'a' |
0x64 | 100 | เลขฐานสิบ 100 |
0x7F | 127 | ค่าสูงสุดของ ASCII 7 บิต |
0xFF | 255 | ค่าสูงสุดของ 1 ไบต์ |
0x100 | 256 | 2⁸ |
0xFFFF | 65,535 | ค่าสูงสุดของ unsigned 16 บิต |
0xFFFFFF | 16,777,215 | ค่าสูงสุดของสี RGB แบบ 24 บิต |
แปลงเลขฐานสิบเป็น Hex
การแปลงกลับจากฐานสิบเป็นฐานสิบหกใช้วิธีหารซ้ำด้วย 16 แล้วอ่านเศษจากล่างขึ้นบน เศษ 10-15 เขียนเป็น A-F
ตัวอย่าง 1,500 เป็น hex
- 1500 ÷ 16 = 93 เศษ 12 → C
- 93 ÷ 16 = 5 เศษ 13 → D
- 5 ÷ 16 = 0 เศษ 5 → 5
อ่านจากล่างขึ้นบนได้ 5DC₁₆ ตรวจสอบได้จาก 5×256 + D(13)×16 + C(12) = 1,500
รหัสสี Hex บนเว็บ
CSS ใช้รหัสสีรูปแบบ #RRGGBB โดย RR, GG และ BB เป็นค่า hex สองหลักของสีแดง เขียว และน้ำเงิน แต่ละช่องมีค่า 00-FF หรือ 0-255 ในฐานสิบ
| รหัสสี | R | G | B | คำอธิบาย |
|---|---|---|---|---|
| #000000 | 0 | 0 | 0 | ดำ |
| #FFFFFF | 255 | 255 | 255 | ขาว |
| #FF0000 | 255 | 0 | 0 | แดง |
| #00FF00 | 0 | 255 | 0 | เขียวสด |
| #0000FF | 0 | 0 | 255 | น้ำเงิน |
| #4A90D9 | 74 | 144 | 217 | ฟ้า |
Hex ในงานโปรแกรมมิง
Hex พบได้ในหน่วยความจำ machine code, ASCII, IPv6, error code, bitmask, hash และไฟล์ไบนารี เพราะมันสั้นกว่าไบนารีและสัมพันธ์กับ byte ได้ดี ตัวอย่างเช่น 2 หลัก hex แทน 1 byte พอดี จึงอ่าน dump ของหน่วยความจำได้ง่ายกว่าเลขฐานสองยาว ๆ
- ที่อยู่หน่วยความจำ: เช่น
0x7FFE0B4C3A20 - ASCII: 'A' = 0x41, 'a' = 0x61, space = 0x20
- IPv6: เขียนเป็นกลุ่มเลข hex หลายกลุ่ม
- Hash: SHA-256 แสดงผลเป็นอักขระ hex 64 ตัว
ไบนารี ฐานแปด ฐานสิบ และ Hex
| ฐานสิบ | ไบนารี | ฐานแปด | Hex |
|---|---|---|---|
| 0 | 0000 | 0 | 0 |
| 1 | 0001 | 1 | 1 |
| 10 | 1010 | 12 | A |
| 15 | 1111 | 17 | F |
| 16 | 0001 0000 | 20 | 10 |
| 255 | 1111 1111 | 377 | FF |
| 1,024 | 0100 0000 0000 | 2,000 | 400 |
| 65,535 | 1111 1111 1111 1111 | 177,777 | FFFF |
เทคนิคเร็วคือแปลงไบนารีเป็น hex โดยแบ่งบิตเป็นกลุ่มละ 4 จากขวาไปซ้าย เช่น 1010 1100 1111₂ = ACF₁₆
เคล็ดลับการคำนวณ Hex
การบวก hex ทำเหมือนฐานสิบ แต่ทดเมื่อผลรวมถึง 16 ตัวอย่าง 3A + 2F: หลักหน่วย A(10)+F(15)=25 ฐานสิบ หรือ 19₁₆ จึงเขียน 9 ทด 1 แล้วหลักถัดไป 3+2+1=6 ผลลัพธ์คือ 69₁₆ ซึ่งเท่ากับ 105 ฐานสิบ
เลข hex ลงท้ายด้วย 0 หารด้วย 16 ลงตัว ส่วนค่าที่ลงท้ายด้วย 0,2,4,6,8,A,C,E เป็นเลขคู่ในฐานสิบ
คำถามที่พบบ่อย
แปลง hexadecimal เป็น decimal อย่างไร?
คูณแต่ละหลักด้วย 16 ยกกำลังตามตำแหน่ง เริ่มจาก 16⁰ ทางขวา แล้วบวกผลรวม เช่น 1A3₁₆ = 1×256 + A(10)×16 + 3 = 419
แปลง decimal เป็น hexadecimal อย่างไร?
หารด้วย 16 ซ้ำ ๆ เก็บเศษแต่ละรอบ แล้วอ่านเศษจากล่างขึ้นบน เศษ 10-15 แทนด้วย A-F
0xA เป็นฐานสิบเท่าไร?
0xA = 10 เพราะ A แทนค่า 10 ในระบบฐานสิบหก
0x10 เป็นฐานสิบเท่าไร?
0x10 = 16 เพราะหลักซ้ายคือ 1 × 16 และหลักขวาคือ 0 × 1
0x30 เป็นฐานสิบเท่าไร?
0x30 = 48 และใน ASCII ค่านี้แทนอักขระ '0'
0xFF เป็นฐานสิบเท่าไร?
0xFF = 15×16 + 15 = 255 เป็นค่าสูงสุดของข้อมูล 8 บิตแบบ unsigned
อ่านรหัสสี Hex อย่างไร?
แยกเป็นสามคู่ เช่น #4A90D9 คือ R=4A, G=90, B=D9 แปลงแต่ละคู่เป็นฐานสิบเพื่อได้ rgb(74, 144, 217)