Visual C++中int表示的範圍
阿新 • • 發佈:2018-07-25
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表示的範圍