C에서 16진수 값 인쇄

Waqar Aslam 2023년10월12일
  1. C 프로그래밍 언어의 16진수 개요
  2. C 프로그래밍 언어의 형식 지정자
  3. 16진수 값으로 변환하는 과정
  4. 16진수 값 인쇄 구현
  5. %x를 사용하여 C에서 소문자로 16진수 값 인쇄
  6. C에서 %X를 사용하여 16진수 값을 작은 글자로 인쇄하기
C에서 16진수 값 인쇄

이 게시물에서는 C 프로그래밍 언어를 사용하여 16진수 값을 인쇄하는 방법에 대해 설명합니다.

C 프로그래밍 언어의 16진수 개요

16진수는 C 프로그래밍 언어에서 16개의 기호를 사용하여 구성된 값입니다. 이러한 기호에는 0에서 9까지의 10가지 일반 수치 체계와 A에서 F까지의 6가지 추가 기호가 포함됩니다.

C의 16진수 체계를 16진수 숫자 체계라고 합니다. float, long 또는 double과 같은 데이터 유형으로 16진수를 저장하는 것은 불가능합니다. 그러나 정수 데이터 유형에 저장할 수 있습니다.

C 프로그래밍 언어에서 16진수 값을 입력하려면 %x%X와 같은 형식 지정자를 제공하는 scanf를 사용해야 합니다.

16진수 값은 C 프로그래밍 언어에서 0x 또는 0X로 표시됩니다. 정수를 16진수 형식으로 인쇄하려면 형식 지정자 %x 또는 %Xprintf() 명령 내에서 사용해야 합니다.

값은 %x가 사용된 경우 (a-f)와 같이 알파벳 소문자로 된 16진수 형식으로 인쇄됩니다. %X가 사용된 경우 (A-F)와 같이 알파벳이 대문자인 16진수 형식으로 값이 인쇄됩니다.

C 프로그래밍 언어의 형식 지정자

0x가 출력에 항상 포함되도록 하려면 값이 0이더라도 0x가 출력 앞에 추가되기 때문에 # 기호를 사용하면 안 됩니다.

다음과 같은 방식으로 너비 필드를 0 플래그와 결합하여 선행 0을 생성할 수 있습니다. %08x의 값은 정수에 선행 0을 추가하여 너비가 8이 되도록 합니다.

다음과 같은 정밀도 필드를 사용할 가능성도 있습니다. %.8x 정수 앞에 0을 채워 총 8자리가 되도록 합니다. 따라서 0x%.8x는 목표를 위해 고려해야 할 또 다른 옵션입니다.

부호 있는 변환에서 #0x 또는 음수 정수의 -와 같이 변환의 일부로 접두사가 형성되면 이러한 변환 요구 사항이 달라집니다. 접두사의 길이는 너비에 대해 계산되지만 정확도 지정자에 대해서는 계산되지 않습니다.

다음은 다양한 지정자를 사용하여 16진수에 대한 다양한 출력 스타일을 제공하는 방법의 예입니다.

#include <stdio.h>

int main() {
  printf("%10x\n", 252);
  printf("%010x\n", 252);
  printf("%#010x\n", 252);

  printf("%10.8x\n", 252);
  printf("%#10.8x\n", 252);
  printf("0x%.8x\n", 252);

  printf("%10x\n", 0);
  printf("%010x\n", 0);
  printf("%#010x\n", 0);

  printf("%10.8x\n", 0);
  printf("%#10.8x\n", 0);
  printf("0x%.8x", 252);
}

출력:

        fc
00000000fc
0x000000fc
  000000fc
0x000000fc
0x000000fc
         0
0000000000
0000000000
  00000000
  00000000
0x000000fc

16진수 값으로 변환하는 과정

이제 완전히 이해할 수 있도록 시스템이 이 변환을 수행하는 방법을 살펴보겠습니다.

  1. 먼저 제공된 숫자를 16으로 나누고 나머지 작업을 기록해야 합니다.
  2. 몫이 0이 될 때까지 1단계를 계속합니다.
  3. 획득한 반대 순서로 나머지 구성 요소를 결합합니다.

16진수 값 인쇄 구현

예를 들어 이 예에서 252를 16으로 나누면 몫이 15이고 나머지가 12입니다. 이제 15를 16으로 나누겠습니다. 몫은 0이고 나머지는 15입니다.

15를 16으로 나눈 결과 몫은 0이라는 점에 유의하는 것이 중요합니다. 따라서 여기에서 계산을 중지합니다.

처음 두 단계 후에 얻은 나머지 두 개는 12와 15이며 16진수로 해당 표현은 cf입니다. 나머지의 16진수 표현은 여기에서 생성된 방법의 반대 방향으로 구성됩니다.

따라서 값 252는 이 경우 fc로 16진수로 표시됩니다.

%x를 사용하여 C에서 소문자로 16진수 값 인쇄

16진수 값은 %x 형식 수정자를 사용하여 작은 글자로 인쇄됩니다. ff, ffd

%x 형식 지정자가 어떻게 작동하는지 알아보기 위해 다음 예를 살펴보겠습니다.

첫 번째 단계는 필요한 라이브러리를 가져오고 main() 함수를 구성하는 것입니다.

다음으로 데이터 유형이 int인 변수를 생성하고 이름을 integerValue로 지정합니다. 그런 다음 해당 16진수 값으로 변환될 정수 값을 제공합니다.

그런 다음 정수 값을 16진수로 변환해야 합니다. %x 지정자가 자동으로 수행하고 소문자로 값을 인쇄합니다.

암호:

#include <stdio.h>

int main() {
  int integerValue = 252;
  printf("The converted value in hexadecimal is: %x\n", integerValue);
  return 0;
}

출력:

The converted value in hexadecimal is: fc

C에서 %X를 사용하여 16진수 값을 작은 글자로 인쇄하기

이 예에서는 print 문에 %X를 사용하여 값을 대문자로 출력합니다.

#include <stdio.h>

int main() {
  int integerValue = 252;
  printf("The converted value in hexadecimal is: %X\n", integerValue);
  return 0;
}

출력:

The converted value in hexadecimal is: FC
작가: Waqar Aslam
Waqar Aslam avatar Waqar Aslam avatar

I am Waqar having 5+ years of software engineering experience. I have been in the industry as a javascript web and mobile developer for 3 years working with multiple frameworks such as nodejs, react js, react native, Ionic, and angular js. After which I Switched to flutter mobile development. I have 2 years of experience building android and ios apps with flutter. For the backend, I have experience with rest APIs, Aws, and firebase. I have also written articles related to problem-solving and best practices in C, C++, Javascript, C#, and power shell.

LinkedIn