什么是进制?
- 八进制:由八个符号组成,逢八进一
- N 进制:由N个符号组成, 逢N进一
- 每一种进制都是完美的,可以自己完成运算,不要试图使用十进制或者某一种进制去理解其他的进制
计算机为什么使用二进制?
- 计算机电路只有两种状态:1 真(通电) 0 假(断电)
- 计算机中存储的任何文件,接收的任何指令都是0和1构成
- ps: 量子计算机不仅仅0,1
如何将二进制转换为16进制
- 16进制只是2进制的另外一种标记符,对于标记符应该直接记忆,在汇编学习中不应该总是去逻辑计算
数据宽度
- 计算机受硬件约束,数据有长度限制,超出宽度后会被丢弃,长度限制就是数据宽度
- 常见宽度:32位(bit) = 4字节(Byte) = 2字(World)= 1双字(Doubleword)
有符号和无符号
- 1.无符号数的编码规则 0x9A -> 154
- 2.有符号的编码规则 0x9A-> -26
编码规则
- 原码:最高位为符号位,其余给位为数值本身的绝对值
- 反码:
- 正数:反码与原码相同
- 负数:符号位为1,其余位对原码取反
- 补码:
- 正数:补码与原码相同
- 负数:符号位为1,其余位对原码取反之后加1
- 计算机中数值一律使用补码形式存储,正数也可以说是以上其中任何一种编码
- 注意 +0 和 -0 其中 -0 通常被用于表示负数的最小的数字
计算机怎样运算
- 计算机只认识 0和 1 计算机只能做位运算
- 左移:各位全部左移若干位,高位丢弃,低位补0
- 右移:各位全部右移若干位,低位丢弃,高位补0(shr)或者符号位(sar)
- 计算机本身需要通过位运算来实现最基础的四则运算
- 加法:通过 异或->与运算 递归求值,知道与运算返回值为0为止
- 减法
- 乘法:X * Y = X 个 Y相加
- 减法:X / Y = X 可以减去多少个Y
- 加法:通过 异或->与运算 递归求值,知道与运算返回值为0为止