<style> html, body, .ui-content { background-color: #333; color: #ddd; } body > .ui-infobar { display: none; } .ui-view-area > .ui-infobar { display: block; } .markdown-body h1{ color: #9CCEF2; } .markdown-body h2, .markdown-body h3{ color: #B1D6CA; } .markdown-body h4, .markdown-body h5, .markdown-body h6 { color: #ddd; } .markdown-body h1, .markdown-body h2 { border-bottom-color: #ffffff69; } .markdown-body h1 .octicon-link, .markdown-body h2 .octicon-link, .markdown-body h3 .octicon-link, .markdown-body h4 .octicon-link, .markdown-body h5 .octicon-link, .markdown-body h6 .octicon-link { color: #fff; } .markdown-body img { background-color: transparent; } .ui-toc-dropdown .nav>.active:focus>a, .ui-toc-dropdown .nav>.active:hover>a, .ui-toc-dropdown .nav>.active>a { color: white; border-left: 2px solid white; } .expand-toggle:hover, .expand-toggle:focus, .back-to-top:hover, .back-to-top:focus, .go-to-bottom:hover, .go-to-bottom:focus { color: white; } .ui-toc-dropdown { background-color: #333; } .ui-toc-label.btn { background-color: #191919; color: white; } .ui-toc-dropdown .nav>li>a:focus, .ui-toc-dropdown .nav>li>a:hover { color: white; border-left: 1px solid white; } .markdown-body blockquote { color: #bcbcbc; } .markdown-body table tr { background-color: #5f5f5f; } .markdown-body table tr:nth-child(2n) { background-color: #4f4f4f; } .markdown-body code, .markdown-body tt { color: #eee; background-color: rgba(230, 230, 230, 0.36); } a, .open-files-container li.selected a { color: #5EB7E0; } </style> ###### tags: `tgirc早修book` # 資料型態 <font color="F5F6B6">**int**</font> 的範圍是 $-2^{31} \le int \lt 2^{31}$ ,也就是 $-2,147,483,648 \le int \le 2,147,483,647$ 當運算的數字超過 **int** 的範圍時,可使用 <font color="F5F6B6">**long long**</font> 可儲存範圍到 $2^{63}-1 = 9,223,372,036,854,775,807$ ,大約是 $9\times 10^{18}$ 一般常數預設是 **int** 型態,若要改成 **long long** 型態時,要在常數後加上 `LL` ```cpp= #include <iostream> using namespace std; int main(){ long long num=123456789; //10^10 cout<<"溢位(未加LL) "<<num*2<<"\n"; cout<<"無溢位(有加LL) "<<num*2LL<<"\n"; return 0; } ``` :::warning 當運算數字超過範圍時稱作溢位,儘管結果會在範圍中,只要過程出現溢位,最終的答案就會有問題,因此在做運算時要多加小心 如果超過 **long long** 範圍的話,就要使用**大數**來解題 關於溢位,有興趣可以參考 -> [補充](https://hackmd.io/@Tamilala/overflow)。 ::: <font color="F5F6B6">**unsigned int**</font> 是用來宣告正整數,範圍是 $0 \le unsigned$ $int \le 2^{32}-1$ 即 $0 \le unsigned$ $int \le 4,294,967,295$ 除了 `int` 宣告常數以外,還有其他種宣告的方式: * <font color="F5F6B6">**char**</font>:宣告字元,可輸入單個字元,數字無法和常數一樣直接進行運算,以 **Ascii** 進行轉換 * <font color="F5F6B6">**string**</font>:宣告字串,可輸入一串句子,直到**空格**或**換行**,與 char 相同皆為文字型態 * <font color="F5F6B6">**bool**</font>:宣告布林值,範圍 0(false)、1(true) * <font color="F5F6B6">**float**</font>:宣告浮點數,即可使用小數 * <font color="F5F6B6">**double**</font>:宣告倍精度浮點數,比 float 還要精準不少,進行小數的運算時,建議都以此宣告