728x90
3.7 다양한 정수형들
- 최소 크기는 각 자료형이 최소한 이만큼의 크기를 가져야 함을 의미 -> C언어는 각 자료형의 최소 메모리 크기만을 규정 지음
- long은 int가 2byte일 때 만들어졌으므로 4byte
- 형식 지정자에서 h는 짧음을 의미
- 형식 지정자는 C언어에서만 사용
#include <stdio.h>
#include <limits.h>
#include <stdlib.h>
int main()
{
char c = 65;
short s = 200;
unsigned int ui = 3000000000U; // 뒤의 U, L, LL은 생략 가능 (리터럴의 자료형을 표현해주는 기호들)
long l = 65537L;
long long ll = 12345678908642LL;
printf("char = %hhd, %d, %c\n", c, c, c); // %c는 변수를 문자로 출력함
printf("short = %hhd, %hd, %d\n", s, s, s); // hhd(char)는 -128 ~ 127까지 표현 가능. overflow 발생
printf("unsigned int = %u, %d\n", ui, ui); // d(signed int)는 표현 범위가 unsigned int와 달라서 overflow 발생
printf("long = %ld, %hd\n", l, l); // hd(short)는 long보다 표현 범위가 작음 -> overflow
printf("long long = %lld, %ld\n", ll, ll); // long은 long long보다 표현 범위가 작음 -> overflow
return 0;
}
Output :
char = 65, 65, A -> 65는 문자 'A'를 표현하는 숫자
short = -56, 200, 200
unsigned int = 3000000000, -1294967296
long = 65537, 1
long long = 12345678908642, 1942899938
- 각 자료형마다 표현 범위가 다르므로 형식 지정자를 잘 맞춰줘야 함
3.8 8진수와 16진수
#include <stdio.h>
int main()
{
unsigned int decimal = 4294967295; // 10진수
unsigned int binary = 0b11111111111111111111111111111111; // 2진수
unsigned int oct = 037777777777; // 8진수는 앞에 0을 붙임
unsigned int hex = 0xffffffff; // 16진수는 0x를 붙임
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);
// o = 8진수, x = 16진수, #o = prefix를 붙여서 8진수로 출력
// #x = prefix를 붙여서 16진수로 출력, #X = 대문자로 출력
return 0;
}
Output :
4294967295
4294967295
4294967295
4294967295
37777777777 ffffffff 037777777777 0xffffffff 0XFFFFFFFF -> 0은 8진수, 0x는 16진수임을 의미
강의 출처 : https://www.inflearn.com/course/following-c/dashboard
'Study_C, C++ > 홍정모의 따라하며 배우는 C언어' 카테고리의 다른 글
[홍정모의 따라하며 배우는 C언어] 3.11 부동소수점형 ~ 3.12 부동소수점형의 한계 (0) | 2021.08.12 |
---|---|
[홍정모의 따라하며 배우는 C언어] 3.9 고정 너비 정수 ~ 3.10 문자형 (0) | 2021.08.10 |
[홍정모의 따라하며 배우는 C언어] 3.5 정수와 실수 ~ 3.6 정수의 오버플로우 (0) | 2021.08.07 |
[홍정모의 따라하며 배우는 C언어] 3.4 간단한 입출력 프로그램 만들기 (0) | 2021.08.02 |
[홍정모의 따라하며 배우는 C언어] 3.1 데이터와 자료형 ~ 3.3 scanf() 함수의 기본적인 사용법 (0) | 2021.07.25 |