*์ค๋ฒํ๋ก์ฐ (overflow) : ๋ฉ๋ชจ๋ฆฌ์ ํํ ๋ฒ์๋ฅผ ์ด๊ณผํ๋ ์์ ๊ฐ์ ์ ์ฅํ ๋ ๋ฐ์
*์ธ๋ํ๋ก์ฐ (underflow) : ๋ฉ๋ชจ๋ฆฌ๊ฐ ํํ ๋ฒ์๋ณด๋ค ์์ ์์ ๊ฐ์ ์ ์ฅํ ๋ ๋ฐ์
์ฆ, ์๋ ์ฌ์ง(ํ)์ ๋ฒ์๋ฅผ ๋ฒ์ด๋ ๊ฐ์ ์ ์ฅํ๋ฉด ์ค๋ฒํ๋ก์ฐ ๋ฐ ์ธ๋ํ๋ก์ฐ๊ฐ ๋ฐ์ํ๋ค.
*๋ฐ์ดํฐ ํ์
๋ณ ํํ ๋ฒ์
๋๋ฒ์งธ ์ค์ ์๋ unsigned char์ ๋ฒ์๋ฅผ ๋ฒ์ด๋ ๊ฐ์ธ 256์ ๋ฃ์ด๋ณด๋ฉด
#include <stdio.h>
int main(void){
unsigned char a = 256;
printf("%d", a);
}
์ถ๋ ฅ>>>>>>>> 0
0์ด ์ถ๋ ฅ๋๋ค.
์ธ๋ํ๋ก์ฐ์ผ ๊ฒฝ์ฐ, ์๊ณ ๋ฐ๋๋ฐฉํฅ์ผ๋ก ์ซ์๊ฐ ๋ฒ์ด๋๋งํผ ์ด๋ํ๊ฒ ๋๊ณ ,
์ค๋ฒํ๋ก์ฐ์ผ ๊ฒฝ์ฐ, ์๊ณ๋ฐฉํฅ์ผ๋ก ์ซ์๊ฐ ๋ฒ์ด๋๋งํผ ์ด๋๋์ด ํํ๋๋ค.
์ฆ, 256์ 1๋งํผ ์ค๋ฒํ๋ก์ฐ ๋๊ฒ์ด๋ฏ๋ก, ์๊ณ๋ฐฉํฅ์ผ๋ก ํ์นธ ์ด๋ํ์ฌ 0์ด ๋๊ฒ์ด๋ค.
*์ค์์ธ ๊ฒฝ์ฐ์๋ ์ค๋ฒํ๋ก์ฐ๊ฐ ์ผ์ด๋๋ฉด +inf(infinity) ํน์ -inf๋ก ์ถ๋ ฅ๋๊ณ , ์ธ๋ํ๋ก์ฐ๊ฐ ์ผ์ด๋๋ฉด 0 ๋๋ ์ฐ๋ ๊ธฐ๊ฐ์ผ๋ก ์ถ๋ ฅ๋๋ค.
*์ค๋ฒํ๋ก์ฐ๋ก ์ธํด ๋ฌธ์ ๊ฐ ๋ ์ฌ๋ก
newspeppermint.com/2014/12/16/binary-bug/