2์ ๋ณด์ ์ด์ง ํํ
์ ๊ณต์์
๋ ๋ฐฐ์ ๋ ๋ด์ฉ์ ์ค์ค์ค ์จ๋ณด๋ฉด!
2์ง์๋ก 10์ง์, ํนํ ์์๊น์ง ํ์ํ๊ธฐ ์ํด ์ฌ๋ฌ๊ฐ์ง ๋ฐฉ์(ํฉ ํ์, ๋ถํธ ์ ๋๊ฐ ํ์, 1์๋ณด์)์ ์ฌ์ฉํ๋ค.ํฉ ํ์์ ํจ์จ์ ์ด์ง ์๊ณ , ๋ถํธ ์ ๋๊ฐ ํ์๊ณผ 1์ ๋ณด์๋ 0์ ํํํ๋ ๋ฐฉ์์ด ๋๊ฐ์ง(10000000, 00000000)์ธ ๋ฑ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์๋ค. ๋ฐ๋ผ์, ๊ฐ์ฅ ํจ์จ์ ์ด๊ณ ํ๋ํ๋ ๋ฐฉ๋ฒ์ธ 2์ ๋ณด์๋ฅผ ํ์ฌ ์ฌ์ฉ์ค์ธ ๊ฒ์ด๋ค~~
- ๋ถํธ ๋นํธ (Sign Bit): 2์ ๋ณด์ ํํ์์ ๊ฐ์ฅ ์ผ์ชฝ ๋นํธ, ์ฆ ์ต์์ ๋นํธ๋ ๋ถํธ ๋นํธ์ด๋ค
- 0์ ์์๋ฅผ ๋ํ๋ด๊ณ 1์ ์์๋ฅผ ๋ํ๋ธ๋ค.
- 2์ ๋ณด์ ๊ณ์ฐ
- ๋ชจ๋ ๋นํธ๋ฅผ ๋ฐ์ (0์ 1๋ก, 1์ 0์ผ๋ก ๋ฐ๊ฟ)ํ๋ค.
- ๊ทธ ๊ฒฐ๊ณผ์ 1์ ๋ํ๋ค.
- 5 (00000101)์ 2์ ๋ณด์ ๊ณ์ฐ
- ๋ชจ๋ ๋นํธ ๋ฐ์ : 11111010
- 1์ ๋ํจ: 11111011
- -5 (11111011)์ 2์ ๋ณด์ ๊ณ์ฐ
- ๋ชจ๋ ๋นํธ ๋ฐ์ : 00000100
- 1์ ๋ํจ: 00000101
- 5 (00000101)์ 2์ ๋ณด์ ๊ณ์ฐ
์ค๋ฒํ๋ก์ฐ
- char ํ์
์ ์ต๋๊ฐ: 127
- char ํ์ ์ 1๋ฐ์ดํธ(8๋นํธ)๋ก ๊ตฌํ๋๋ฉฐ, 8๋นํธ ์ค 1๋นํธ(๊ฐ์ฅ ์ผ์ชฝ ๋นํธ)๋ ๋ถํธ๋ฅผ ๋ํ๋ด๋๋ฐ ์ฌ์ฉ๋๋ค.
- ์ด๋, ๋๋จธ์ง 7๋นํธ๋ ์ซ์๋ฅผ ๋ํ๋ด๋๋ฐ ์ฌ์ฉ๋๊ธฐ ๋๋ฌธ์ ์ต๋๊ฐ์ 01111111 ์ด๋ฏ๋ก 127์ด๋ค.
#include <stdio.h>
#include <limits.h>
int main(){
char value = CHAR_MAX; //limits.h์ ์ ์ (value = 127)
printf("Orginal value: %d\n", value);
value = value + 1; //value = 127 + 1 = 128
printf("Value + 1 : %d\n", value);
return 0;
}
ํด๋น ์ฝ๋์์๋ char์ ์ต๋๊ฐ์ธ 127์ value์ ์ ์ฅํ ๋ค, 127์ 1์ ๋ํ์๋ค.
๋ฐ๋ผ์ char์ ์ต๋๊ฐ์ ๋ฒ์ด๋ฌ์ผ๋ฏ๋ก ์ค๋ฒํ๋ก์ฐ๊ฐ ๋ฐ์ํ๋ค.
๋ณดํต ์ค๋ฒํ๋ก์ฐ๊ฐ ๋ฐ์ํ๋ฉด ์ต์๊ฐ๋ถํฐ ๋ค์ ์์ํ๊ฒ ๋๋ฏ๋ก ์ต์๊ฐ์ธ -128๋ก ๋์๊ฐ๊ฒ ๋๋ ๊ฒ์ ๊ฒฐ๊ณผ์์ ํ์ธํ ์ ์๋ค.
[๊ฒฐ๊ณผ์ฐฝ]
[์ค๋ฒํ๋ก์ฐ๊ฐ ๋ฐ์ํ๋ฉด ์ ์ต์๊ฐ์ผ๋ก ๋์๊ฐ๊ฒ ๋ ๊น?]
ํด๋น ์ฝ๋์์๋ ์ค๋ฒํ๋ก์ฐ๋ฅผ ๋ฐ์์ํค๊ธฐ ์ํด ์ต๋๊ฐ์ธ 127์์ 1์ ๋ํ๋ค.
์ด๋ฅผ ์ด์งํํ์ผ๋ก ๋ค์ ๋ณด๋ฉด, 01111111 + 00000001 ์ด๋ค.
๊ฒฐ๊ณผ๋ 10000000 ๋ก, 2์ ๋ณด์ ์ด์ง ํํ์ ๋ฐ๋ผ -128์ธ ๊ฒ์ ํ์ธํ ์ ์๋ค.
* 10000000์ ๋นํธ ๋ฐ์ ์ํค๋ฉด 01111111์ด ๋๊ณ , ์ฌ๊ธฐ์ 1์ ๋ํ๋ฉด 10000000์ด ๋๋ค.
๊ทธ ๊ฒฐ๊ณผ, 10000000์ -128์ ๋ํ๋ธ๋ค.
์ธ๋ํ๋ก์ฐ๋ก ์ฝ๋ ์์
์ธ๋ํ๋ก์ฐ๋ผ๋ ๋ง์ด ๋ง ์์ฒญ ์ ํํ๊ฒ ์ฐ์ด๋ ๋ง์ ์๋๋ผ๊ณ ํ์ จ๋ค...
- char ํ์ ์ ์ต์๊ฐ: -128
#include <stdio.h>
#include <limits.h>
int main(){
char value = CHAR_MIN; //limits.h์ ์ ์
printf("Orginal value: %d\n", value);
value = value - 1;
printf("Value - 1 : %d\n", value);
return 0;
}
ํด๋น ์ฝ๋์์๋ char์ ์ต์๊ฐ์ธ -128์ value์ ์ ์ฅํ ๋ค, 1์ ๋บ๋ค
๋ฐ๋ผ์ char์ ์ต์๊ฐ์ ๋ฒ์ด๋ฌ์ผ๋ฏ๋ก ์ธ๋ํ๋ก์ฐ๊ฐ ๋ฐ์ํ๋ค.