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

วิธีการแปลงไบนารีเป็น Hex โดยใช้ภาษา C?


เลขฐานสองจะแสดงใน 1 และ 0

ระบบเลขฐานสิบหก 16 หลัก คือ {0,1,2,3…..9, A(10), B(11),……F(15)}

ในการแปลงจากการแทนค่าไบนารีเป็นเลขฐานสิบหก id สตริงของบิตจะถูกจัดกลุ่มเป็นบล็อก 4 บิตซึ่งเรียกว่า nibbles จากด้านที่มีนัยสำคัญน้อยที่สุด แต่ละบล็อกจะถูกแทนที่ด้วยเลขฐานสิบหกที่เกี่ยวข้อง

มาดูตัวอย่างกันเพื่อความชัดเจนในการแทนเลขฐานสิบหกและเลขฐานสอง

0011 1110 0101 1011 0001 1101
  3    E    5    B   1    D

เราเขียน 0X3E5B1D สำหรับค่าคงที่ฐานสิบหกในภาษา C

อีกตัวอย่างหนึ่งซึ่งวิธีการแปลงทศนิยมเป็นเลขฐานสองคืออะไรและจากนั้นเป็นเลขฐานสิบหกมีดังต่อไปนี้ -

7529D = 0000 0000 0000 0000 0001 1101 0110 1001B
      = 0x00001D69 = 0x1D69

ตัวอย่าง

ต่อไปนี้เป็นโปรแกรม C ซึ่ง วิธีแปลงเลขฐานสองเป็นเลขฐานสิบหกที่เท่ากันโดยใช้ 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