共计 904 个字符,预计需要花费 3 分钟才能阅读完成。
代数运算
对应 1003 + 1 =1004
D: 1003
B: 0011 1110 1011
0011 1110 1011 + 1 = 0011 1110 1100
也就是说同一个非负整数 在十进制和二进制都 有一个序列和它一一对应
- 数自身是一一对应的
- 运算也是一一对应的 +1 -1
也就是说加减法 在十进制和二进制是 等价的
溢出的问题
如果咱们规定一个序列只有两位
00 +01
01 +01
10 +01
11 +11 ?
这里该是多少呢?如果咱们有 3 位
11
01
100
然而咱们这里 只有两位 发现最高位的 1 被吞掉了 这就是溢出
00
如果你的序列不是有限的 而是无限的 你就会发现 他的所有元素会造成一个环
00
11 01
10
把 n bit 按每个块 m bit 的大小划分 能划分出 $\frac{n}{m}$个块, 然而你想每一个地位都一一对应一个地址的话,也就是每一个块都能被找到的话
那必须是 $\frac{n}{m}$ <= 2^m
n = 8
m = 2
2^m = 4
n/m = 4
二进制就是模为 2 求余数的同余 过程
位与数字
把 n bit 按 m bit 的大小划分 能划分出 $\frac{n}{m}$个块, 然而你想每一个地位都一一对应一个地址的话,也就是每一个块都能被找到的话
那必须是 $\frac{n}{m}$ <= 2^m
同一个非负整数 10 进制和 2 进制代表的意思是雷同 只是他们的表达形式不太
例如
13
D: 1x10^1 + 3x10^0
1101
B: 1x2^3 + 1x2^2 + 0x2^1 + 1x2^0
正数的解决 (补码)
比方我有 m 位
那么一个一半
2^m- 1 位非负整数 另外 2^m- 1 表式正数
二进制符号构造 补码代数构造 十进制符号构造
这才是二的补码 就是定义在环上的代数运算
取反加一
比方
001 1
取反
110 -2
+001 +1
为什么这里不是 -1?111 -3 这就是正数 - 1 的补码
那么它的原码就是先减 1
110 反码
符号位不变其余取反
101 -1 这才是 - 1 原码
溢出的点位产生了 180* 旋转
求一个负数所对应的正数
1 001
先取反
110
而后 +1
111 这就是你求的那个数的补码
补码还原为原码的过程
先 -1
110
而后处符号位取反
101 -1
反码:负数的反码就是其原码;正数的反码是将原码中,除符号位以外,每一位取反
补码:负数的补码就是其原码;正数的反码 + 1 就是补码。
正数的原码 = 反码 取反 = 补码 -1 取反
正文完