计算机位运算的加减乘除原理
最近在B站看了狂神的
【狂神说】最通俗易懂的计算机底层教学,二进制到汇编学习!
记下笔记梳理下、免得看完就忘
以下皆为个人理解,请自行斟酌,如果有错误欢迎指出
详情可转去看视频
有符号数及无符号数
即是否带正负的数字
最高符号位为0为正数
最高符号位为1为负数
原码反码补码
存储在计算机里的二进制码
- 无符号数
反码与原码相同
补码与原码也相同
如 12 八进制为 0000 1100
原码 0000 1100
反码 0000 1100
补码 0000 1100 - 有符号数
原码即为数字的二进制码取绝对值
反码最高符号位一定是-1、其余位取反
补码为反码+1
如: -1 八进制为 1000 0001
原码 1000 0001
反码 1111 1110
补码 1111 1111
位运算
计算机计算步骤
- 异或运算(如没有进位则、算出来的则直接就是结果了)
- 与运算 用来判断进位(就比如8进制里 4+4=10 就逢8进1位 )
- 如果步骤2不为0、即有进位、将结果左移一位
- 步骤1、3的结果 进行 异或运算 这是进位后的结果(但不能保证这次进位运算后没有再次进位)
- 再次步骤1、3的结果进行与运算、确保没有进位
- 输出结果