๐ C++ ๊ธฐ์ด ํ๋ฌ์ค 3์ฅ ์์ฝ (summary)
๐ต C++ ๊ธฐ๋ณธ ๋ฐ์ดํฐํ
1๏ธโฃ ์ ์ํ์ผ๋ก ์ ์ฅ๋๋ ๊ฐ
signed๋ unsigned์ ๋ฐ๋ผ ์ ์ํ์ ์ฌ๋ฌ๊ฐ์งํ์ผ๋ก ๋๋จ
์ ์ํ์ ํฌ๊ธฐ๊ฐ ์์ ๊ฒ๋ถํฐ ์์๋๋ก ๋์ด
bool โก๏ธ char โก๏ธ signed char โก๏ธ unsigned char โก๏ธ short โก๏ธ unsigned short โก๏ธ int โก๏ธ unsigned int โก๏ธ long โก๏ธ unsigned long
shortํ์ ์ต์ํ 16๋นํธ์ด๋ค.
intํ์ ์ต์ํ shortํ ๋งํผ์ ์ปค์ผํ๋ค.
longํ์ ์ต์ํ 32๋นํธ์ด๊ณ , ์ต์ํ intํ ๋งํผ์ ์ปค์ผ ํ๋ค.
wchar_t ์ ์ํ
(๋ค์ด๊ฐ ์์น๋ ์์คํ ์ ๋ฐ๋ผ ๋ค๋ฆ)
charํ์ ์์คํ ์ ๊ธฐ๋ณธ ๋ฌธ์ ์ธํธ์ ์ํ๋ ์ด๋ ํ ๋ฌธ์๋ ์ ์ฅํ ์ ์์ ๋งํผ ์ปค์ผํจ
wchar_tํ์ ์์คํ ์ ํ์ฅ ๋ฌธ์ ์ธํธ์ ์ํ๋ ์ด๋ ํ ๋ฌธ์๋ ์ ์ฅํ ์ ์์ ๋งํผ ์ปค์ผ ํจ
2๏ธโฃ ๋ถ๋ ์์์ ํ์ผ๋ก ์ ์ฅ๋๋ ๊ฐ
๋ถ๋ ์์์ ์ ์์๋ถ๊ฐ ์๋ ๊ฐ์ ๋ํ๋ผ ์ ์๊ณ ์ ์๋ณด๋ค ํจ์ฌ ํฐ ๊ฐ์ ๋ํ๋ผ ์ ์๋ค.
๋ถ๋ ์์์ ํ์ float, double, long doubleํ์ด ์๋ค.
long doubleํ์ ์ต์ํ doubleํ๋งํผ์ ์ปค์ผ ํ๋ค.
doubleํ์ ์ต์ํ floatํ๋งํผ์ ์ปค์ผ ํ๋ค.
floatํ์ 32๋นํธ, doubleํ์ 64๋นํธ, long doubleํ์ 80์์ 128๋นํธ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ค.
๐ต ์์น ๋ฐ์ดํฐํ์ ๋ํด ์ฐ์ ์ฐ์ฐ -๋ง์ , ๋บ์ , ๊ณฑ์ , ๋๋์ , ๋๋จธ์ง์ -์ ์ํํ๋ ์ฐ์ฐ์๋ฅผ ์ ๊ณต
๋ณ์์ ๊ฐ์ ๋์ ํ ๋, ์์์ ์๋ก ๋ค๋ฅธ ๋ฐ์ดํฐํ์ ํผํฉํ์ฌ ์ฌ์ฉํ ๋, ๋ฐ์ดํฐํ ๋ณํ์๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ์ ๋ก ๋ฐ์ดํฐํ์ ๋ณํ์ํฌ ๋, ํ ๋ฐ์ดํฐํ์ ๋ค๋ฅธ ๋ฐ์ดํฐํ์ผ๋ก ๋ณํํ๋ค.
๋ฐ์ดํฐํ ๋ณํ์์ ๋ฐ์ดํฐ์ ์ค์ ๊ฐ์ ๋๋ถ๋ถ ๊ทธ๋๋ก ์ ์ง๋๋ค. (Ex : intํ์ longํ์ผ๋ก ๋ณํํ๋ ๊ฒ์ ๋ฌธ์ ๊ฐ ์์ง๋ง, ๋ถ๋ ์์์ ํ์ ์ ์ํ์ผ๋ก ๋ณํํ ๋๋ ์ฝ๊ฐ์ ์ฃผ์๊ฐ ํ์ํ๋ค)
โ๏ธ ์ฐ์ต ๋ฌธ์
1๏ธโฃ C++๋ ์ ์ฌ๋ฌ๊ฐ์ ์ ์ํ์ ์ ๊ณตํ๋๊ฐ?
โ๏ธ ํฌ๊ธฐ๊ฐ ๋ค๋ฅธ ์ ์ํ์ ์ฌ๋ฌ ๊ฐ ์ ๊ณตํ๋ฉด ํน๋ณํ ์๊ตฌ์ ์ ํฉํ ๋ฐ์ดํฐํ์ ๊ณจ๋ผ์ ์ฌ์ฉํ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค.
2๏ธโฃ ๋ค์ ์์ ๊ณผ ์ผ์นํ๋ ๋ณ์๋ค์ ์ ์ธํ๋ผ.
a. ๊ฐ์ด 80์ธ shortํ ์ ์
b. ๊ฐ์ด 42,110์ธ unsigned intํ ์ ์
c. ๊ฐ์ด 3,000,000,000์ธ ์ ์
โ๏ธ a.short ribis = 80;
โ๏ธ b. unsigned int q = 42110;
โ๏ธ c. unsigned long ants = 3000000000; ๋๋ long long ants = 3000000000;
3๏ธโฃ ์ ์ํ์ ํ๊ณ๋ฅผ ๋ฒ์ด๋์ง ์๋๋ก C++์ด ์ ๊ณตํ๋ ์์ ์ฅ์น๋ ๋ฌด์์ธ๊ฐ?
โ๏ธ C++์ ์ ์์ ํ๊ณ๋ฅผ ๋ฒ์ด๋์ง ์๋๋ก ์ฌ์ฉ์๋ฅผ ๋ณดํธํ๋ ์์ ์ฅ์น๋ฅผ ์ ๊ณตํ์ง ์๋๋ค. ์ ์๊ฐ์ ํ๊ณ๊ฐ ์ผ๋ง์ธ์ง ์๋ ค๋ฉด climits ํค๋ ํ์ผ์ ์ดํด๋ณด๋ผ.
4๏ธโฃ 04. 33L๊ณผ 33์ ์ฐจ์ด๋ ๋ฌด์์ธ๊ฐ?
โ๏ธ 33L์ longํ ์์์ด๊ณ , 33์ intํ ์์์ด๋ค.
5๏ธโฃ ๋ค์ ๋ ๊ตฌ๋ฌธ์ ๊ฐ์ ๊ฒ์ธ๊ฐ?
char grade = 65;
char grade = 'A';
โ๏ธ ์ด๋ค ์์คํ ์์๋ ์ฐ์ฐํ ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ๋ง๋ค์ด ๋ผ ์๋ ์์ง๋ง, ์ฌ์ค์ ๊ฐ์ง ์๋ค. ์ฒซ ๋ฒ์งธ ๊ตฌ๋ฌธ์ ASCII ์ฝ๋๋ฅผ ์ฌ์ฉํ๋ ์์คํ ์์๋ง grade์ A๋ผ๋ ๋ฌธ์๋ฅผ ์ ์ฅํ๋ค. ๋ ๋ฒ์งธ ๊ตฌ๋ฌธ์ ์ด๋ ํ ์์คํ ์์๋ grade์ A๋ผ๋ ๋ฌธ์๋ฅผ ์ ์ฅํ๋ค. ๊ทธ๋ฆฌ๊ณ 65๋ intํ ์์์ด๊ณ 'A'๋ charํ ์์์ด๋ค.
6๏ธโฃ ์ฝ๋ 88์ ํด๋นํ๋ ๋ฌธ์๋ฅผ C++์๊ฒ ์ด๋ป๊ฒ ์๋ ค์ค ์ ์๋๊ฐ?
โ๏ธ 4๊ฐ์ง ๋ฐฉ๋ฒ์ด ์๋ค.
1. char c = 88;
cout << c << end; // cout์ charํ์ ๋ฌธ์๋ก ์ถ๋ ฅํ๋ค
2. cout.put(char)88)); // put()์ charํ์ ๋ฌธ์๋ก ์ถ๋ ฅํ๋ค
3. cout << char(88) << endl; // ์ ์
4. cout << (char)88 << endl; // ๊ตฌ์
7๏ธโฃ longํ ๊ฐ์ floatํ์ ๋์ ํ๋ฉด ์ฐ์๋ฆฌ ๋ฒ๋ฆผ ์๋ฌ๊ฐ ๋ฐ์ํ ์ ์๋ค. longํ ๊ฐ์ doubleํ์ ๋์ ํ๋ฉด ์ด๋ค ์ผ์ด ๋ฐ์ํ ๊น? ๋๋ long longํ ๊ฐ์ double์ ๋์ ํ๋ฉด ์ด๋ค ์ผ์ด ๋ฐ์ํ ๊น?
โ๏ธ ๋ต์ ๋ ๋ฐ์ดํฐํ์ด ์ผ๋ง๋ ํฌ๋์ ๋ฐ๋ผ ๋ฌ๋ ค ์๋ค. longํ์ด 4๋ฐ์ดํธ์ด๋ฉด ๋ฐ์ดํฐ ์์ค์ด ์ผ์ด๋์ง ์๋๋ค. 4๋ฐ์ดํธ๋ 10์๋ฆฌ ์์ธ 2147483647๊น์ง ์ ์ฅํ ์ ์๋ค. doubleํ์ ์ ํจ ์ซ์๋ฅผ 13์๋ฆฌ๊น์ง ํ์ฉํ๋ฏ๋ก, longํ์ doubleํ์ ๋์ ํ ๋ ์ฐ์๋ฆฌ ๋ฒ๋ฆผ์ด ์ผ์ด๋์ง ์๋๋ค. ๋ฐ๋ฉด์, long longํ์ 19์๋ฆฌ์๊น์ง ๋๋ฌํ ์ ์์ด์, double์๊ฒ ๋ณด์ฆ๋ 13์๋ฆฌ ๋ฒ์๋ฅผ ์ด๊ณผํ๋ค.
์ถ์ฒ ๋ฐ ์ฐธ๊ณ : C++ ๊ธฐ์ด ํ๋ฌ์ค
HyunZzang์ ํ๋ก๊ทธ๋๋ฐ ๊ณต๊ฐ / ํจ๊ป ๊ณต๋ถํด์!!
๋์์ด ๋์ จ๋ค๋ฉด "์ข์์โค๏ธ" ๋๋ "๊ตฌ๋ ๐๐ป" ๋ถํ๋๋ฆฝ๋๋ค :)