คำอธิบาย
เลขฐานสอง (Binary) ประกอบด้วย 0 และ 1 เลขฐานสิบหก (Hexadecimal) มี 16 ตัวอักษร: {0-9, A(10), B(11), C(12), D(13), E(14), F(15)}
การแปลง: จัดกลุ่มบิตทีละ 4 ตัว (Nibble) จากขวาไปซ้าย แล้วแปลงแต่ละกลุ่มเป็นตัวเลขฐานสิบหก
ตัวอย่างการแปลง
0011 1110 0101 1011 0001 1101 3 E 5 B 1 D
เขียนใน C เป็น 0x3E5B1D
ตัวอย่างเพิ่มเติม
7529 (ฐานสิบ) = 0000 0000 0000 0000 0001 1101 0110 1001 (ฐานสอง)
= 0x00001D69 = 0x1D69 (ฐานสิบหก)
โค้ดตัวอย่าง: แปลงฐานสองเป็นฐานสิบหกด้วย While Loop
#include <stdio.h>
int main() {
long int binaryval, hexadecimalval = 0, i = 1, remainder;
printf("Enter the binary number: ");
scanf("%ld", &binaryval);
while (binaryval != 0) {
remainder = binaryval % 10;
hexadecimalval = hexadecimalval + remainder * i;
i = i * 2;
binaryval = binaryval / 10;
}
printf("Equivalent hexadecimal value: %lX", hexadecimalval);
return 0;
}
ผลลัพธ์
Enter the binary number: 11100 Equivalent hexadecimal value: 1C