Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

วิธีแปลงเลขฐานสองเป็นฐานสิบหก (Binary to Hex) ในภาษา C


คำอธิบาย

เลขฐานสอง (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