整數的第一位表示符號位。
1 正整數
正整數在計算機中直接用它的二進位制儲存,例如:
short s = 3;
3 = 2^1 + 2^0
短整型一般為2個位元組,即16位,它的對應的儲存方式為:
0 000 0011
所以,短整型的表示範圍為:-2^15 ~ +2^15
0是個特例,它有兩種表示方式:
1 000 0000
0 000 0000
所以,短整型一共只有2^16 - 1 個數。
再看整型,整型的儲存為4個位元組,32位
int i = 7;
7 = 2^2 + 2^1 + 2^0
即:0 000 0000 0000 0111
為了表述簡單,以下統一用short型。
2 負整數
在說負數之前先說兩個概念:
原碼:符號位加二進位制;
反碼:正數為本身,負數符號位加二進位製取反(即0變為1,1變為0);
補碼:正數為本身,負數未取反加一;
例如:原碼:
10 = 2^3 + 2^1:0 000 1100
-10:1 000 1100
反碼:10 :0 000 1100
-10:1 111 0011
補碼:10:0 000 1100
-10:1 111 0100
計算機中,資料統一用補碼的方式來儲存和表示。
例如:-5
原碼:1 000 1001
反碼:1 111 0110
補碼:1 111 0111
它的儲存方式即:1 111 0111
例如:0
0有兩種表示方法,即+0和-0;
原碼:1 000 0000
0 000 0000
反碼:1 000 0000
0 111 1111
補碼:1 000 0000
1 000 0000
所以0在計算中的表示方法也是唯一的,+0和-0最終都是1 000 0000
3 整數之間的運算
實際上計算機只會做一種運算:加法運算
乘法:加法,重複做加法
除法:減法,重複做減法
所以,我們來研究一下加法運算。計算機中資料的表示和存放方式都是以補碼的形式,
計算的時候也是用補碼來進行運算,結果也是補碼。表示方式中符號位不參與運算,運算中符號位也參入。
首先看正數,例如:1 + 2
1:0 000 0001
2:0 000 0010
0 000 0011
結果為:0 000 0011,十進位制3
再看正數與負數,也是減法運算,例如:1 - 2 = 1 +(-2)
1: 0 000 0001
-2:1 111 1110
1 111 1111
結果為:1 111 1111
負數由補碼求原碼的方式:減一取反
例如,上述結果:
補碼:1 111 1111
反碼:1 111 1110
原碼:1 000 0001 即 十進位制的-1
就到這裡吧,接下來會看看浮點數,上班去咯。
#高位的0都去掉
計算機中整數的加減運算
通常在程式設計時,會預設將指標以及位址等說明為無符號整數,故其遵循無符號整數的加減運算。在其他情況下面,通常都是進行帶符號的整數運算,但是這兩種運算的本質其實是相通的,因為在計算機內部,這些有無符號整數的加減或者乘除操作其實都是通過相同的加法器來完成的 在加法器內部通過輸入進行判斷是輸出無符號還是有...
計算機系統中的整數運算
計算機系統內的整數運算的侷限 表示整數的二進位制位是一定的,所以表示的整數的範圍是侷限的。整數 運算實際上是一種模運算 表示數字的有限字長限制了可能的取值範圍,結果運算可能溢位,所以運算結果都是取模之後的。無符號加法 乙個算術運算溢位,是指完整的整數結果不能放到資料型別的字長限制中去。c語言中真正執...
資料在計算機中的表示和運算
概述 計算機的應用領域及其廣泛,不論在哪一領域,計算機本質上都是處理資訊的工具,要了解計算機的工作原理,首先要明白計算機中資訊的表示和儲存方法。計算機中的資訊型別很多,總體上可分為兩大類 一類是計算機處理的物件,即資料資訊 一類是用於控制計算機工作的資訊,即指令。關於數值型資料,首先解決的問題是資料...