Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 상속
- 부스트코스
- DOM
- BeautifulSoup
- richtext
- 건대입구맛집
- 정렬알고리즘
- python3
- removetooltip
- 추상클래스
- 코딩독학
- popupmenubutton
- 컴퓨터과학
- 포인터
- 장고
- 속초여행
- 아스키코드
- 노마드코더
- Python
- c언어문자열
- FLUTTER
- 성수동카페
- 남양주맛집
- Django
- pipenv
- 알고리즘
- 강원도속초맛집
- 자바
- 가상환경
- JavaScript
Archives
- Today
- Total
YUYANE
C / 오버플로우 본문
오버플로우
데이터 타입이 저장할 수 있는 최대/최소 범위를 넘어섰을 때를 일컫는다.
예시
#include <cs50.h>
#include <stdio.h>
int main(void)
{
float price = get_float("What's the price?\n");
printf("Your total is %.100f.\n",price);
}
float 값을 입력 받아 출력시키는 코드이다.
'%.100f'는 소수점 아래 100자리까지 출력하라는 구문이다.
'0.2'를 입력 했으니, 결과 값으로 '0.2000000000...'을 가져야 마땅하지만,
보다시피 0 이외에 이상한 숫자들이 출력된다.
원인
이는 float에서 저장 가능한 비트 수를 넘어섰기 때문이다.
프로그램을 작성하면 구동 중에 RAM이라 불리는 메모리에 저장되는데,
RAM은 유한한 크기의 비트만 저장할 수 있기 때문에 부정확한 결과를 내놓는 것이다.
참고
'Programming Languages > C' 카테고리의 다른 글
C / 컴파일 과정에 대해서 (0) | 2021.01.25 |
---|---|
C / 포인터 사용하기 (코드리뷰) (0) | 2021.01.22 |
C / 전역변수 사용이 나쁜 이유 (0) | 2021.01.22 |
C / char 이용해서 문자열 선언하기 (0) | 2021.01.21 |
C / 컴파일러의 역할 (0) | 2021.01.18 |
Comments