### 二进制
二进制是计算技术中广泛采用的一种数制.二进制根据是用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. 计算机没有减法,都是用加法运算的.先把要减的数转成负数,然后相加.