定点数:小数点固定的数
浮点数:小数点不固定的数

定点数的表示:
无符号数:
表示范围
n位的无符号数
无符号整数 没有无符号小数 (意义不大,因为标准浮点数已经可以表示所有正小数)
有符号数的定点表示:

定点整数: ps可用原码 反码 补码表示定点整数和定点小数 移码来表示定点整数 不表示定点小数
数值部分叫尾数
若机器字长n+1 原码表示整数的范围 -(2的n-1)到(2的n-1) 真值0有+0和-0两种 2的n+1个状态,但是实际上是2的n+1减一 两个状态都表示0
定点小数:
原码表示定点小数 -(1-2的-n) 到1-2的-n (怎么推)

反码只需要把符号位为1的数值位全部取反
只是转化为补码的中间状态 并不是很重要

补码:
+0 和 -0一样了 000000只有一种表示形式
补1,0000000表示-2的7次方
所以补码的范围会多一个 -2的n 到 2的n-1
1.0000000表示-1
那定点小数呢 多表示一个-1 -1到1-2的-n

移码:
就是在补码的基础上将符号位取反喔
移码和补码的范围一一对应

本质上相当于所有的数字加上了128 从0开始了 真值增大 移码表示的整数很方便对比大小
真值 补码 移码
-128 1000 0000 0000 0000
-127 1000 0001 0000 0001
0 0000 0000 1000 0000
127 0111 1111 1111 1111

技巧:
由x补求 -x补的
符号位 数值位全部取反 末尾加一

各种码的作用:
无符号
00001110+10001110 = 10011100 14+142 = 156
有符号
加起来不是零 14-14 = 0
这就是原码的缺陷
要变成正减正 加法器容易 减法器不好 用加法代替减法
-3mod12 怎么计算 因为x = qm + r xmodm -3 = (-1)*12 + 9

互为补数
绝对值之和等于模
若能找到负数的补数 就可以用正数的加法来等价替代减法

如果是8bit 那么计算机天然的完成了mod2的8次方这个操作 只会保留8位
那么我们知道 模-a的绝对值 = a的补数 其实是补码的定义!!
这时候-14的补码 11110010
那就00001110+11110010 = 00000000
补码让减法操作转变为加法操作 节省成本

所以我们就可以知道为什么补码是取反加一了
-14 10001110 绝对值 00001110 + 补数 = 100000000
就是加11110001 会得到全为11111111的数 如果末尾加上一个1 就变成模了奥

88-66
01011000 - 01000010
就是(+模-a绝对值) + 100000000 - 01000010 就是 10111110 相加为 00010110 等于22
执行加法操作时,符号位一起参与运算

进位舍弃了 但是有时候 我们要知道这个进位反映了溢出的信息 之后说

移码表示法(Excess-K)的主要优势在于:
数值顺序 和无符号二进制码的顺序是一致的
主要应用 浮点数(Floating-Point)表示中的指数部分 因为浮点数的比较操作通常只需要比较指数和尾数的位串即可,而移码的顺序特性让指数比较变得非常快。
为什么?