c์–ธ์–ด #6

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
-2,147,483,648 ~ 2,147,483,647

unsigned int

2 or 4 byte

0~65,535 or
 0 ~ 4,294,967,295

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