C++ Primer Plus 學習日記1
技術標籤:C++ Primer Plus自學c++
第3章 處理資料
C++ climits 中的符號常量
符號常量 | 表示 | 值 |
---|---|---|
CHAR_BIT | char 的位數 | 8 |
CHAR_MAX | char 的最大值 | 127 |
CHAR_MIN | char 的最小值 | -128 |
SCHAR_MAX | signed char 的最大值 | 127 |
SCHAR_MIN | signed char 的最小值 | -128 |
UCHAR_MAX | unsigned char 的最大值 | 255 |
SHRT_MAX | short 的最大值 | 32767 |
SHRT_MIN | short 的最小值 | -32768 |
USHRT_MAX | unsigned short 的最大值 | 65535 |
INT_MAX | int 的最大值 | 2147483647 |
INT_MIN | int 的最小值 | -2147483648 |
UNIT_MAX | unsigned int 的最大值 | 4294967295 |
LONG_MAX | long 的最大值 | 2147483647 |
LONG_MIN | long 的最小值 | -2147483648 |
LONG_MAX | unsigned long 的最大值 | 4294967295 |
LLONG_MAX | long long 的最大值 | 9223372036854775807 |
LLONG_MAX | long long 的最小值 | -9223372036854775808 |
ULLONG_MAX | unsigned long 的最大值 | 18446744073709551615 |
整數的取值限制
將一個short(sam)變數和一個unsigned short(sue)變數分別設定為最大的short值(32767)。然後將這些變數的值都加1。這對於sue來說沒有什麼問題,因為新值仍比無符號整數的最大值小得多;但sam的值從32767變成了-32768。同樣,對於sam,將其設定為0並減去1,也不會有問題;但對無符號變數sue,將其設定為0並減去1後,它變成了65535.
由上文可得出,這些整型變數的值如果超越了限制,其值將為範圍另一段的取值(詳見下圖)
使用大括號初始化器進行資料初始化
例:int emus{7}; // set emus to 5
int rheas = {12}; // set rheas to 12
※int rocs{}; // set rocs to 0(空值預設賦0)
利用cout的特性輸出八進位制和十六進位制數:
除了endl控制符,我們還可以使用標頭檔案iostream中的dec、hex、oct控制符用於指示cout以十進位制、十六進位制、八進位制格式顯示整數。
// hexoct2.cpp -- display values in hex and octal
#include <iostream>
using namespace std;
int main()
{
using namespace std;
int chest = 42;
int waist = 42;
int inseam = 42;
cout << "Monsieur cuts a striking figure!" << endl;
cout << "chest = " << chest << " (decimal for 42)" << endl;
cout << hex; // manipulator for changing number base
cout << "waist = " << waist << " (hexadecimal for 42)" << endl;
cout << oct; // manipulator for changing number base
cout << "inseam = " << inseam << " (octal for 42)" << endl;
return 0;
}
輸出結果: