2020. 1. 13. 02:14ใ๐ ๊ฐ๋ฐ · ํ๋ก๊ทธ๋๋ฐ/C
<๊ฐ ์๋ฃํ์ ํฌ๊ธฐ>
์๋ฃํ |
ํฌ๊ธฐ |
๊ฐ์ ๋ฒ์ |
char |
1 byte |
-128~127, 0~255 |
unsigned char |
1 byte |
0~255 |
signed char |
1 byte |
-128~127 |
int |
2 or 4 byte |
-32,768~32,767 or |
unsigned int |
2 or 4 byte |
0~65,535 or |
short |
2 byte |
-32,768 ~ 32,767 |
unsigned short |
2 byte |
0 ~ 65,535 |
long |
4 byte |
-2,147,483,648 ~ 2,147,483,647 |
unsigned long |
4 byte |
0 ~ 4,294,967,295 |
<Overflow Underflow>
char ํฌ๊ธฐ๋ -128 ~ 127๊น์ง๋ค.
๊ทผ๋ฐ cNum1์๋ ๋ฒ์๊ฐ ๋ฒ์ด๋ 128๊ณผ cNum2์๋ ๋ฒ์๊ฐ ๋ฒ์ด๋ -129๊ฐ ์ ์ธ์ด ๋์๋ค.
์ถ๋ ฅ ๊ฒฐ๊ณผ๋ ์ด๋ ๋ค.
์ถ์ฒ : https://dojang.io/mod/page/view.php?id=32
C ์ธ์ด ์ฝ๋ฉ ๋์ฅ: 7.2 ์ค๋ฒํ๋ก์ฐ์ ์ธ๋ํ๋ก์ฐ ์์๋ณด๊ธฐ
๋ง์ฝ ์ ์ ์๋ฃํ์์ ์ ์ฅํ ์ ์๋ ๋ฒ์๋ฅผ ๋์ด์๋ฉด ์ด๋ป๊ฒ ๋ ๊น์? ๋ค์ ๋ด์ฉ์ ์์ค ์ฝ๋ ํธ์ง ์ฐฝ์ ์ ๋ ฅํ ๋ค ์คํํด๋ณด์ธ์. integer_overflow.c #include int main() { char num1 = 128; // char์ ์ ์ฅํ ์ ์๋ ์ต๋๊ฐ 127๋ณด๋ค ํฐ ์๋ฅผ ํ ๋น // ์ค๋ฒํ๋ก์ฐ ๋ฐ์ unsigned char num2 = 256; // unsigned char์ ์ ์ฅํ ์ ์๋ ์ต๋๊ฐ 255๋ณด๋ค ํฐ ์๋ฅผ ํ ๋น // ์ค๋ฒํ๋ก
dojang.io
1. cNum1์ -128์ด ๋์ค๋๋ฉด ์ฒ์์ cNum1์ 128์ ๋ฃ์๋ค. ํ์ง๋ง ํฌ๊ธฐ๋ -128 ~ 127๊น์ง๋ค. 127๊น์ง์ธ๋ฐ 128์ ๋ฃ์ด์ ์ค๋ฒํ๋ก์ฐ๊ฐ ๋ฐ์ํ๋ค(1๋งํผ). ๊ทธ๋์ 127์ ๋ค์์ซ์๋ 128์ด์ง๋ง char ์๋ฃํ์ ํฌ๊ธฐ๋ -128 ~ 127๊น์ง๊ธฐ ๋๋ฌธ์ 127 ๋ค์ ์ซ์๋ -128์ด ๋๋ค.
2. cNum2์ 127์ด ๋์ค๋๋ฉด cNum2์ -129๋ฅผ ๋ฃ์๋ค. char์ ํฌ๊ธฐ๋ -128 ~ 127 ๊น์ง์ด๋ค.
-128๋ณด๋ค ์ ์ ์ซ์๋ฅผ ๋ฃ์์ผ๋ฏ๋ก ์ธ๋ํ๋ก์ฐ ๋ฐ์. ๊ทธ๋์ -128์์ ๊ทธ์ ์ซ์์ธ 127์ด ๋์ค๊ฒ ๋๋๊ฒ์ด๋ค.
'๐ ๊ฐ๋ฐ ยท ํ๋ก๊ทธ๋๋ฐ > C' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
c์ธ์ด #8 (0) | 2020.03.21 |
---|---|
c์ธ์ด #7 (0) | 2020.03.21 |
c์ธ์ด #5 (0) | 2020.01.13 |
c์ธ์ด #4 (0) | 2020.01.13 |
c์ธ์ด #3 (0) | 2020.01.12 |