10진수 Decimal Numbers |
2진수 Binary Numbers |
8진수 Octal Numbers |
16진수 Hexadecimal Numbers |
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
0 1 10 11 100 101 110 111 1000 1001 1010 1011 1100 1101 1110 1111 10000 |
0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 |
0 1 2 3 4 5 6 7 8 9 A B C D E F 10 |
16진수의 경우는 0~9 뒤에 A~F를 빌려서 16개를 사용한다. 의외로 16진수는 색상표 같은곳 등등에서 은근히 자주 만나 볼 수 있다.
#include<stdio.h>
int main()
{
unsigned int decimal = 4294967295;
unsigned int binary = 0b11111111111111111111111111111111;
unsigned int oct = 037777777777;
unsigned int hex = 0xffffffff;
printf("%u\n", decimal);
printf("%u\n", binary);
printf("%u\n", oct);
printf("%u\n", hex);
printf("%o %x %#o %#x %#X", decimal, decimal, decimal, decimal, decimal);
return 0;
}
4294967295
4294967295
4294967295
4294967295
37777777777 ffffffff 037777777777 0xffffffff 0XFFFFFFFF
맨 앞에 0b는 뒤에오는 리터럴상수들이 2진수라는 뜻으로 아무것도 없이 사용하면 10진수. C언어에서 표준은 아니지만 많이 사용하는 것이라 보통 컴파일러에서 지원해준다. 리터럴상수들 앞에 2진수는 0b, 8진수는 0, 16진수는 0x를 붙이고 저것들을 prefix라고 부른다.
출력시에 8진수와 16진수를 알려주기 위에 앞에 오는 prefix를 출력하고 싶으면, 포맷팅시 앞에 #을 붙여서 %#o, %#x, %#X로 코딩해준다. 16진수는 대문자로 표현해도 상관없다.
'프로그래밍언어 > C언어' 카테고리의 다른 글
[C language] 문자형 (0) | 2020.12.09 |
---|---|
[C language] 이식성이 높은 고정 너비 정수형(Fixed-width Integers) (0) | 2020.12.09 |
[C language] 다양한 정수형들 (0) | 2020.12.09 |
[C language] 정수(integers)의 오버플로우(Overflow) (0) | 2020.12.09 |
[C language] 정수와 실수 (0) | 2020.12.09 |