1. 程式人生 > >Visual C++中int表示的範圍

Visual C++中int表示的範圍

alt 計算 一個 src 存儲 idt 整數 -128 浪費

在Visual C++中的int整型一般由四個字節表示

技術分享圖片

技術分享圖片

在計算機中采用補碼形式存儲int(對於正數其補碼與原碼相等),

補碼的數字從0000 0000 0000 0000 0000 0000 0000 0000~1111 1111 1111 1111 1111 1111 1111 1111

通過補碼和原碼的轉換規則,1111 1111 1111 1111 1111 1111 1111 1111表示的值為-1;

1111 1111 1111 1111 1111 1111 1111 1110表示的值為-2;

1111 1111 1111 1111 1111 1111 1111 1101表示的值為-3;

1000 0000 0000 0000 0000 0000 0000 0001表示的值為-2147483647;

將1000 0000 0000 0000 0000 0000 0000 0000硬性規定為-2147483648;

簡化性的理解:

對於一個8字節的整數(int)來說,範圍是2的8次方,表示-128~127。如下面的表格所示,如果用原碼和反碼,

+0和-0是同一個數卻有兩個不同的表示,這樣不僅會使計算機多一層處理,還會浪費一個表示範圍;而補碼就能很好的解決這個問題。

(-128只有補碼,而沒有原碼和反碼,因為數值位只能表示0~127。)

Visual C++中int表示的範圍