【星海随笔】计组数学小课堂

计算机组成原理
https://www.bilibili.com/video/BV1ps4y1d73V?p=8

16的负一次方既为1/16 == 16^-1
16进制转换为10进制。

例如:5.8
5 * 16^1 + 8 * 16^-1

十进制转N进制,则除以N ,然后逆序余数

2->8 进制快速转换
001 111 000 010 011 010
1 7 0 2 3 2 八进制

8421推理,所以为可以3位为一体直接推出8进制。
16进制也是这个道理

8进制转2进制
25 => 010 101

每个8进制对应3位的二进制

(25)10

脚边有10代表这是一个10进制的数。
脚标有时候是个单词,例如

二进制是 B
十进制是D , 因为十的英语单词是 decimalism
十六进制是H 或者0x , 因为十六的英语单词是hexadecimal

十进制转任何进制使用短除法会更加直观一点

例如
2 | 75 … 1
2 | 37 … 1
2 | 18 … 0
2 | 9 … 1
2 | 4 … 0
2 | 2 … 0
2 | 1 … 1
0
(75)10 或者 75D
(100 1011) 2 或者 1001011B

十进制->任意进制
小数部分 * N进制,取整数部分。
如果有死循环,则推荐保留5位数。
#小数点后不容易用二进制表达

例如 0.3 转二进制
0.3 * 2 = 0.6
0.6 * 2 = 1.2
0.2 * 2 = 0.4
0.4 * 2 = 0.8
0.8 * 2 = 1.6
0.6 * 2 = 1.2
#出现了循环,0.01001 1B

小数点后的简便运算
2^-1 | 2^-2 | 2^-3
0.5 | 0.25 | 0.125
例如。0.125 转二进制。
根据表格位 0.001

8421码 用二进制的形式,只取0~9的二进制表达式去表达10进制。

例如:
13
0001 0011

在 8421 码中 1010~1111 没有定义 ,既10~16

还有 余3 码 和 2421 码。
就是字面意思,留三个码从0011 开始
二进制4位分别表示2421

无符号整数的加法运算。
二进制 + 运算
从低位开始,按位相加,并往更高位进位。

二进制减法,末位加+,减法变加法,涉及到数论
被减数不变,减数 全部位按位取反、末尾加1
#减法,前面的是被减数,后面的是减数

n bit 无符号整数 表示范围 0~2^n - 1
1 1 1 1
4bit 表示 0 ~ 15 == 2^4 - 1
超出则溢出。

带符号整数

符号位 0 正 1 负

原码
补码
反码
同一个含义,不同的编码方式表示。

该计算机硬件能支持带符号整数有上限
例如通用寄存器只能存8个

需要先将 原码 转变为 反码 然后再变成 补码
如果是正数

| 原码 | 反码 | 补码 | 都是一样的

如果是负数

| 原码< -> 反码 | 符号位不变,数值位取反

| 反码 -> 补码 | 末位加 1

| 原码 <-> 补码 | 从右往左找到第一个1,这个 1 左边的所有“数值位” 按位取反

补码的加法运算,如果超出,则舍弃最高位。

【B】补 <-> 【-B】补
全部(包括符号位)位按位取反、末位+1
补码的减法 A-B = A + (-B)

补码:真值 0 只有一种补码。
补码没办法表达-128这个数。

是否发生溢出,可以带入十进制验证。是否超出合法范围。

带符号整数:原码

n+1 bit 合法表示范围 最大的数 最小的数 真值0的表示
带符号整数: 原码 -(2^n - 1) <= x <= 2^n -1 0,111…111 = 2^n -1 1,111…111 = -(2^n-1) [+0]原= 0,000…000 [-0]原 = 1,000…000
带符号整数: 反码 -(2^n - 1) <= x <= 2^n - 1 0,111…111 = 2^n - 1 1,000…000 = -(2^n-1) [+0]反 = 0,000…000 [-0]反 = 1,111…111
带符号整数: 补码 -2^n <= x <= 2^n -1 0,111…111 = 2^n - 1 1,000…000 = -2^n [0]补 = 0,000…000真值0只是一种补码
无符号整数 0<= x <= 2^n+1 -1 1111…111 = 2^n+1 - 1 0000…000 = 0 0000…000
带符号整数:移码 -2^n <= x <= 2^n - 1 1111…111 = 2^n-1 0000…000 = -2^n [0]移 = 1000…000真值 0 只是一种移码

补码的合法表示范围比原码多一个负数,只有一种方法表示真值 0

移码:补码符号位取反

常用于浮点数阶码

定点整数的编码表示:原码、反码、补码、移码
定点小数的编码表示:原码、反码、补码

定点数

*定点整数 – 既:带符号整数
*定点小数

对两个定点小数A、B进行加法、减法时,需要先转换为补码

你可能感兴趣的:(算法)