Computer >> 컴퓨터 >  >> 프로그램 작성 >> C 프로그래밍

C 언어를 사용하여 바이너리를 16진수로 변환하는 방법은 무엇입니까?

<시간/>

이진수는 1과 0으로 표현됩니다.

16자리의 16진수 체계는 {0,1,2,3…..9, A(10), B(11),…F(15)}

입니다.

2진에서 16진 표현으로 변환하기 위해 비트 문자열 id는 최하위 쪽에서 니블이라고 하는 4비트 블록으로 그룹화됩니다. 각 블록은 해당하는 16진수로 대체됩니다.

16진수 및 2진수 표현에 대한 명확성을 얻기 위해 예를 살펴보겠습니다.

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

C 언어의 16진 상수에 대해 0X3E5B1D를 작성합니다.

10진수를 2진수로 변환한 다음 16진수로 변환하는 방법에 대한 또 다른 예는 다음과 같습니다. -

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

예시

다음은 while 루프를 사용하여 이진수를 해당하는 16진수로 변환하는 방법을 설명하는 C 프로그램입니다. -

#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