数制

一般数制:

(N)_{R}&=\sum\limits_{i=-\infty}^{\infty}K_{i}\times R^{i} \\ \end{align}$$ - $R$ 为基数,表示为 $R$ 进制 - $K_{i}$ 为 $R^{i}$ 幂的系数 0~R-1 常用数制: | 符号 | 英文名 | 名称 | 基数 | 前缀 | | :-- | :-------------- | :--- | :-- | ---- | | B | **binary** | 二进制 | 2 | | | O | **octal** | 八进制 | 8 | | | D | **decimal** | 十进制 | 10 | `0` | | H | **hexadecimal** | 十六进制 | 16 | `0x` | 其中十六进制使用:0~9、A、B、C、D、E、F ```python a=int('number',base=n) ``` ### 二进制 使用 0 和 1 将事物或状态联系起来 - 利用 0 与 1 的“有/无、是/否、开/关”状态进行**抽象与建模** - 数字电路、信息表示,均以二进制为基础 - 计算机的“开关”本质:**高电平=1,低电平=0** #### 带符号的二进制数 **原码** Sign Magnitude:最高位为符号位,$0\to+\quad 1\to-$ **反码** One's Complement:符号位不变,其余数值位逐位取反 **补码** Two's Complement:反码的最低位 +1 > **计算机内部采用补码进行运算**,便于加法统一处理正负数 |数值|原码|反码|补码| |:--|:--|:--|:--| |+5|00000101|00000101|00000101| |-5|10000101|11111010|11111011| #### 8421 BCD 码 **Binary-Coded Decimal** 二进制编码的十进制码,每个十进制数字(0-9)都被编码为一个四位的二进制数。这种编码方式使得十进制数的运算可以直接在计算机中进行,而不需要进行额外的转换步骤 例如: 18 的二进制码为:16+2 `0001 0010` BCD 码则为:10+8 `0001 1000` 前一个四位表示十位 1 ,后一个四位表示个位 8 ### 模二运算 #### 模二加/减法 减法和加法的运算规则相同,**每一位进行异或运算,不进行借位进位** `1111+1010=1111-1010=0101` #### 模二除法 每一位异或运算,不断右移 ``` 000110101 商 --------- 101001000 1101 --------- 01110 1101 --------- 001110 1101 --------- 001100 1101 --------- 0001 余数 ```