-
문제로 배우는 c언어- 정수형 변수와 그 크기 설명C언어 2020. 2. 19. 17:45
8bit : 1byte
int = a 라고 선언을 하면 메모리 공간에 32bit 짜리 a라는 공간이 생성된다.
bit 하나에 0이나 1이 저장된다.
정수형 변수의 크기 : 4byte(32bit)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 *한 칸 당 1bit
3bit로 예를 들었을 때, 나타낼 수 있는 경우의 수
0/1 0/1 0/1 한 칸에 0또는 1이 들어간다.
0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 8가지 경우의 수 : 2x2x2 = 2의 3(칸의 갯수만큼)승이 된다.
8가지의 수를 표현할 수 있고 그 최소치는 0, 최대치는 7이 된다.
최대치 : 2의 3(bit수)승 - 1
정수의 경우 그 경우의 수가 2의 32승(32bit니까)이 되나, 맨 앞 칸은 양수 음수를 구분하는데 쓰이기 때문에 (부호bit)
2의 31승이 된다.
양수의 경우, 0을 포함하기 때문에 2의 31승 -1 이 표현할 수 있는 양수의 최대치이다.
음수의 경우 0을 포함하지 않기 때문에 2의 31승 만큼 음수로 표현할 수 있다.
정수 표현 가능 범위
-2147483648 ~ 2147483647
만약에 2147483648을 출력하려고 하면 Overflow가 일어난다.
한바퀴돌아서 (제일 작은 값으로 회전) -2147483648을 출력함.
Overflow가 일어나면 반대쪽으로 회전함.
음수도 마찬가지로 최소수인 -2147483648을 넘는 수를 입력하면 제일 큰 값으로 회전함.
정수형의 나누기
'C언어' 카테고리의 다른 글
문제로 배우는 c언어 - 반올림 (0) 2020.02.20 문제로 배우는 c언어 - 두 수의 합과 곱, 나누기(몫과 나머지) (0) 2020.02.20 문제로 배우는 c언어 - scanf()와 나머지 연산자, 증감연산자 설명 (0) 2020.02.20 문제로 배우는 c언어 - 실수형과 문자형 변수 설명 (0) 2020.02.19 정수와 실수, 변수와 상수/ 연산 (0) 2020.02.08