1. 程式人生 > 其它 >C++ Primer Plus 學習日記1

C++ Primer Plus 學習日記1

技術標籤:C++ Primer Plus自學c++

第3章 處理資料

C++ climits 中的符號常量

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_MAXlong long 的最小值

-9223372036854775808

ULLONG_MAXunsigned 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; 
}

輸出結果: