์ ๋ฒ ๊ฒ์๊ธ์ ์ด์ด์ C++์ ํ์ (์๋ฃํ)๊ณผ ์คํผ๋ ์ดํฐ(์ฐ์ฐ์)๋ฅผ ์์๋ณด์!
2-1 ํฌ๋ก์๋.
๊ทธ ์ ์ C++์ C์์ ์ฐ๋ output์ธ printf() ํจ์์ C++ ๋ง์ ์๋ก์ด ํจ์์ธ cout ์ ์ธ์์๋๋ฐ,
๊ทธ๊ฒ๋ถํฐ ๋จผ์ ๋ณด๊ณ , ๋ณธ ๋ด์ฉ์ผ๋ก ๊ฐ์.
์์ ๋ฅผ ๋ณด๋ฉด์ ํ์.
1 2 3 4 5 6 | #include <iostream>
int main(void) { ย ย ย std::cout << "Hello World" << std::endl; } |
์์ ์ฒ๋ผ ์ธ์ ์๋๋ฐ, ์ฌ๊ธฐ์ ์ฌ๋ฌ๊ฐ์ง C++์ ์ถ๊ฐ๋ ๊ธฐ๋ฅ๋ค์ด ์ฌ์ฉ๋๊ณ ์๋ค.
๋จผ์ C์ ๋ง์ฐฌ๊ฐ์ง๋ก, ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ธํด๋ฃจ๋ ํด์ ์ฐ๋๋ฐ, C#์์ ์ฐ๋ using์ด๋์ ๋ค๋ฅด๋ค.
C++์ ๊ฒฝ์ฐ์ ์ iostream ์ด๋ผ๋ ํค๋ํ์ผ์ ๊ทธ๋๋ก main.cpp์ ๋ถ์ฌ๋ฃ์ด๋ฒ๋ฆฌ๋๋ฐ, ๊ทธ๊ฒ include์ ์ญํ ์ด๋ค.
๊ทธ ๋ค์์ std::cout์ namespace std์ ์๋ cout ์ด๋ผ๋ ํจ์๋ฅผ ์ด๋ค๋ ๋ป์ด๋ค.
(std๋ standard์ ์ฝ์๋ค.)
cout ์ดํ์ ๋์ค๋ "<<" ์ cout์ ์คํผ๋ ์ดํฐ ์ธ๋ฐ, ์ด ์คํผ๋ ์ดํฐ๋ << ๋ค์ ์๋๊ฑธ ์ถ๋ ฅํด์ฃผ๋ ์ญํ ์ ํด์ค๋ค.
๊ทธ๋ฆฌ๊ณ std::endl;; ์ end line์ ์ฝ์์ธ๋ฐ, new line๊ณผ ๊ฐ์ ์๋ฏธ๋ค. ๊ธฐ์กด C์์ ์ฐ๋ "\n" (์ญ์ฌ๋์ฌ+n) ๊ณผ ๊ฐ์ ์ญํ ์ ํ๋ค.
1 2 3 4 5 6 7 8 | #include <iostream>
int main(void) { ย ย ย std::cout << "Hello World" << std::endl; ย ย ย std::cout << "Hello World" << "\n"; ย ย ย std::cout << "Hello World\n"; } |
์ฆ ์ 3๊ฐ์ง ์ฝ๋๋ ๋๊ฐ์ด Hello World ๋ฅผ ์ถ๋ ฅํ๊ณ ํ์นธ ๋์ฐ๋ ๊ฐ์ ์ญํ ์ ํด์ค๋ค.
2-2 ํ์ (์๋ฃํ)
๋จผ์ , C++์์ ๋ชจ๋ ์ด๋ฆ๊ณผ ํํ์๋ค์ ํ์ ์ ๊ฐ๊ฒ ๋๊ณ , ์ด ํ์ ๋ค์ ์์ ์ ๋ํด ์์ฉํ๋ ์ฐ์ฐ์ ๊ฒฐ์ ํด์ค๋ค.
int i; ๋ผ๊ณ ํ๋ฉด, int ํ์ ์ i๋ผ๋ ๋ณ์๋ฅผ ์ ์ธํ๊ฒ์ด๋ค.
int i ๋ ๋์ฒด๋ก 32bit ์ ์๊ฐ์ ๊ฐ์ง๊ฒ ๋๋๋ฐ, โ2,147,483,648 ย ๋ถํฐ ย 2,147,483,647 ๊น์ง์ ๊ฐ์ ๊ฐ์ง์ ์๋ค.
์๋ ๋งํฌ๋ msdn์ ์ฌ๋ผ์จ C++์ ๊ธฐ๋ณธ ํ์ ์ ๊ดํ ๋ฌธ์๋ค. ์๋ ๋ฌธ์๋ฅผ ๋ณด๋ฉด ์ฌ๋ฌ ํ์ ๋ค์ด ์๋๋ฐ, ๊ฐ๋ตํ๊ฒ ์ค๋ช ํด ๋ณด๊ฒ ๋ค.
https://msdn.microsoft.com/en-us/library/cc953fe1.aspx
์ด๊ฑด CPP๋ ํผ๋ฐ์ค ๋ท์ปด์ ๋ฌธ์๋ค.
http://en.cppreference.com/w/cpp/language/types
๊ทธ๋ผ ์ ์ํ ํ์ ์ ๋ํด ๋ ์์๋ณด์~
์ ์ํ ํ์ ์๋ byte ํฌ๊ธฐ์ ๋ฐ๋ผ ์ฌ๋ฌ๊ฐ์ง์ ํ์ ๋ค์ด ์๋ค.
char ์ 1byte ์ง๋ฆฌ ์ ์ํ ํ์ ์ด๋ค.
short๋ 2byte ์ง๋ฆฌ ์ ์ํ ํ์ ์ด๋ค.
int์ long ์ 4byte ์ง๋ฆฌ ์ ์ํ ํ์ ์ด๋ค.
long long ์ 8byte ์ง๋ฆฌ ์ ์ํ ํ์ ์ด๋ค.
long๊ณผ int๋ ๋๋ค 4byte๊ณ , ๋๋ค ์ ์ํ ์๋ฃ๊ณ , ๋๋ค โ2,147,483,648 ย ๋ถํฐ ย 2,147,483,647 ๊น์ง์ ๊ฐ์ ๊ฐ์ง์ ์๋๋ฐ ๊ฐ์๊ฒ ์๋๊ฐ์? ํ ์ ์๋๋ฐ, ์๋ ๋ฌธ์๋ฅผ ๋ณด๋ฉด ์์ ์๋ค.
https://software.intel.com/en-us/articles/size-of-long-integer-type-on-different-architecture-and-os
๋ด์ฉ์ ์์ฝํด ๋ณด์๋ฉด ์ธํ ์ปดํ์ผ๋ฌ์ ๊ฒฝ์ฐ OS์ ๋ฐ๋ผ long์ ํฌ๊ธฐ๊ฐ ๋ฌ๋ผ์ง๋ค๊ณ ํ๋ค.
์๋์ฐ์ฆ์ ๊ฒฝ์ฐ๋ 32๋นํธ๋ 64๋นํธ์ ์๊ด์์ด 4byte ์ง๋ง, ๋ฆฌ๋ ์ค์ ๋งฅ์ ๊ฒฝ์ฐ๋ 64๋นํธ ์ํคํ ์ฒ์ผ๋ 8byte ์ทจ๊ธ์ ๋ฐ๋๋ค๊ณ ํ๋ค.
8byte๊ฐ ๋๋ค๋ฉด -9223372036854775808 ๋ถํฐ 9223372036854775807 ๊น์ง์ ๋ฒ์๋ฅผ ๊ฐ์ง์ ์๊ฒ ๋๋, ์์์น ๋ชปํ ๋ฒ๊ทธ๊ฐ ์๊ธธ ๊ฐ๋ฅ์ฑ์ด ์๋ค๋ ๋ป์ด๋ค.
์ด ๊ฐ์ ๊ณ์ฐํ๋ ๋ฐฉ๋ฒ์ ์๋ฌธ์ ๊ฐ์ง์ ์์ํ ๋ ์๋ ๋ฌธ์์ ๋ํ ๋งํฌ๋ ์ฒจ๋ถํ๋ค.
2โs complement, ๋๋ twoโs complement ๋ผ ํ๋๋ฐ, ์ด๋ป๊ฒ ๋นํธ๋ฅผ ๊ณ์ฐํด์ ์ ์ํ์ ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ด๋ค. ์ธ์ ๊ฐ ํ๋ฒ์ฏค ์ฝ๊ณ ๋์ด๊ฐ๋ ์ ๋๋ง ํด๋ ์ถฉ๋ถํ๋, ์ฝ๊ณ ์ถ์ผ๋ฉด ์ฝ์ด๋ณด์.
https://en.wikipedia.org/wiki/Two's_complement
๋ค์์ ๋ถ๋์์ํ์ ๋ํด ์์๋ณด์.
ํํ๋ค ์ค์ํ ๋ณ์๋ผ๊ณ ๋ ํ๋ค. ๊ตฌํ์ ๋ฐ๋ผ ๋ถ๋์์์ , ๊ณ ์ ์์์ ๊ณผ ๊ฐ์ ๋ฐฉ์์ผ๋ก ๊ตฌํ์ ํ๋๋ฐ C++์์๋ C์ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ถ๋์์์ ๋ฐฉ์์ผ๋ก ๊ตฌํ์ ํ๋ค.
์์ ์๋ ๊ธฐ๋ณธ ํ์ ๋ค์ ๋ํ ๋ฌธ์๋ฅผ ๋ณด๋ฉด float๊ณผ double์ด ์๋๋ฐ, ์ด๊ฒ๋ค์ด ์ค์ํ์ ํํํ๊ธฐ์ํ ๋ถ๋์์๋ค์ด๋ค. (floating point)
์ด ๋์ ์ฐจ์ด๋ ์ ๋ฐ๋์์ ์ฐจ์ด๋ฅผ ๋ณด์ฌ์ฃผ๊ธฐ ๋๋ฌธ์, ๋ณด๋ค ์ ๋ฐํ ์๋ฎฌ๋ ์ด์ ์ ํ์๋ก ํ๋ค๋ฉด double์ ์ฐ๊ณ , ์๋๋ผ๋ฉด float์ ์ด๋ค. ํ์ง๋ง ์์ง๊น์ง๋ ๊ฒ์์์ float ๋ง์ผ๋ก๋ ์ถฉ๋ถํ ๊ฒฝ์ฐ๊ฐ ๋๋ถ๋ถ์ด๋ผ float์ ์ฐ๋๊ฒ ๋ ์ข๋ค.
๋ถ๋์์์ ์ ๊ตฌํ์ IEEE 754์ ๊ตฌํ์ ๋ฐ๋ฅธ๋ค. ์๋ ๋งํฌ๋ ํด๋น ๋ด์ฉ์ ๋ํ ์ํค ๋ด์ฉ์ด๋ค.
2โs complement์ ๋ง์ฐฌ๊ฐ์ง๋ก ํ๋ฒ์ฏค ์ฝ์ด๋ณผ๋งํ๋ค.
https://en.wikipedia.org/wiki/IEEE_754
๋น์ฝํ์ง๋ง ํ๊ธ๋ก๋ ๋ด์ฉ๋ ์๋ค! (์ฐพ์๋ณด๋ 2โs complement(2์ ๋ณด์)์ ๋ด์ฉ๋ ์์ด์ ๋งํฌ๋ฅผ ์ถ๊ฐํจ.)
https://ko.wikipedia.org/wiki/IEEE_754
https://ko.wikipedia.org/wiki/2์_๋ณด์
์ถ๊ฐ)
1byte ์ ์ํ ํ์ ์ ๋ณด๋ฉด, bool ์ด๋ผ๋ ํ์ ๋ ์๋๋ฐ, bool์ ์ฐธ, ๊ฑฐ์ง์ ๊ดํ boolean ๊ฐ์ ๊ฐ์ง๋ ํ์ ์ด๋ค.
bool ํ์ ์ธ ๋ณ์์๋ค๊ฐ ์ด๋ค ๊ฐ์ ๋ฃ๋๋ผ๋, ์์์ ์ผ๋ก ๋ณํ๋์, bool ๊ฐ์ด ๋๋ค. 0์ด๋ฉด false, ๊ทธ ์ธ์๋ true๊ฐ ๋๋ ํ์์ด๋ค. ํ์ง๋ง, ์ปดํ์ผ๋ฌ๊ฐ warning์ ๋ฟ์ด๋ผํ ๋, ๊ทธ๋ฅ true, false๋ฅผ ์ง์ด ๋ฃ์.
์์ฆ ๋๊ฐ ์จํํ๋ก ์ธ๋๊ฒ์ ๋ง๋ ๋ค๊ณ ์ด๋ฐ ๊ฑธ ์ฌ๋ฆผ
ใด ๋ณธ๋ค๊ณ ํด์ ์จ์ ์ฌ๋ ธ๋๋ฐ;; ๊ฑฐ์ฌ๋ฆฌ๋ฉด ์๋ณด๋ฉด ๋์ง;;
ใ ใ ๋๊ธ๋ก ๊ดํ ์๋ฆฌ ๋ค๋ ์ ๋ค ํ๋ํ๋ ์ ๊ฒฝ ์ฐ๋ฉด ์ธํฐ๋ท ๋ชปํด. ๊ณ ์ํ์ด์~~
์จํ์ถ
๊ณ ๋ง์ต๋๋ค ํ๋ ใ ใ ์์ ๋ฌด์ํ์๊ณ ๊ณ์ ๊ธ์จ์ฃผ์ธ์ - dc App
์ ๊ฐ์ ์ด๋ณดใ์ ๋ฌธ ๊ฐ๋ฐ์๋ค์๊ฒ ์ ๋ง ํ์ํ ๊ธ์ด์์ - dc App
ใฑใ ใฑใ