반응형
#십진수 #십육진수 #변환 #바꾸기
10진수, 2진수, 8진수, 16진수 관계
2진수 3자리 →→ 8진수 1자리
2진수 4자리 →→ 16진수 1자리
10진수 | 8진수 | 16진수 | 2진수 |
0 | 0 | 0 | 0000 0000 |
1 | 1 | 1 | 0000 0001 |
2 | 2 | 2 | 0000 0010 |
3 | 3 | 3 | 0000 0011 |
4 | 4 | 4 | 0000 0100 |
5 | 5 | 5 | 0000 0101 |
6 | 6 | 6 | 0000 0110 |
7 | 7 | 7 | 0000 0111 |
8 | 10 | 8 | 0000 1000 |
9 | 11 | 9 | 0000 1001 |
10 | 12 | A | 0000 1010 |
11 | 13 | B | 0000 1011 |
12 | 14 | C | 0000 1100 |
13 | 15 | D | 0000 1101 |
14 | 16 | E | 0000 1110 |
15 | 17 | F | 0000 1111 |
16 | 20 | 10 | 0001 0000 |
17 | 21 | 11 | 0001 0001 |
.. | .. | .. | .. |
32 | 040 | 20 | 0010 0000 |
64 | 100 | 40 | 0100 0000 |
127 | 177 | 7F | 0111 1111 |
255 | 377 | FF | 1111 1111 |
10진수를 입력받아 16진수로 변환하는 C언어 코드입니다.
음수를 입력하면 종료합니다.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
int i, k = 0, m, n, d;
char c_hex[] = "0123456789ABCDEF";
char hex[10] = { 0 };
while (1)
{
k = 0;
printf("10진수: ");
scanf("%d", &d);
if (d < 0) break;
printf("10진수:%d, 16진수:", d);
while (1)
{
m = d / 16; // 16으로 나눈 몫
n = d - (m * 16); // 나머지
hex[k++] = c_hex[n];
if (m <= 0) break;
d = m;
}
for (i = k - 1; i >= 0; i--)
printf("%c", hex[i]);
printf("\n");
}
return 0;
}
반응형
'C_C++' 카테고리의 다른 글
(C언어) 복소수의 합 (0) | 2022.12.07 |
---|---|
(C언어) 피보나치 수열 (재귀함수) (0) | 2022.12.04 |
(C언어) 파일복사 명령어를 만들어 봅니다: fgetc fputc (0) | 2022.12.01 |
(C언어) 연결리스트: 노드를 앞쪽에 삽입하는 예 (0) | 2022.11.30 |
(C언어) 연결리스트: 노드를 뒤쪽에 추가하는 예 (0) | 2022.11.30 |