### 二進制
二進制是計算技術中廣泛采用的一種數制.二進制根據是用0和1兩個數碼來表示的數.它的技術為2,進位規則是逢二進一.借位規則是借一當二.
當前的計算機系統使用的基本上是二進制系統,**數據在計算機中主要是以補碼的形式存儲的**.
| 術語 | 含義 |
| --- | --- |
| bit(比特) | 一個二進制代表一位,一個位只能表示0或1兩種狀態.數據傳輸是習慣以"位"(bit)為單位 |
| Byte(字節)| 一個字節為8個二進制,稱為8位,計算機中存儲的最小單位是字節.數據存儲是習慣以"字節"(Byte)為單位|
|WORD(雙字節)| 2個字節,16位 |
|DWORD| 2個WORD,4個字節,32位|
|1b|1bit,1位|
|1B| 1字節,8位|
### 原碼
一個數的原碼(原始二進制碼)有如下特點:
1. 最高位作為符號位,0表示正數,1表示負數.
2. 其他數值部分就是數值本身絕對值的二進制數.
3. 負數的源碼是在其絕對值的基礎上,最高位變為1.
~~~
int a = 3; //十進制3
printf("%d\n", sizeof(a));
~~~
結果是:
```
4 //字節
```
也就是說是4個字節,32位.3的二進制是11. 那么此時它的原碼就是
```
0000 0000 0000 0000 0000 0000 0000 0011 //符號位是0表示正數,中間不足用0填充.
```
### 反碼
1. 正數的反碼就是它本身.
2. 負數的反碼,符號位不變,其他數取反.
### 補碼
1. 正數的反碼就是它本身.
2. 負數的反碼,符號位不變,其他數取反.然后再+1
### 計算機的計算方式
1. 先求出一個數的原碼.
2. 然后求出它的反碼.
3. 再求出它的補碼.
4. 然后進行計算. 然后再逆推回原碼.
5. 計算機沒有減法,都是用加法運算的.先把要減的數轉成負數,然后相加.