二进制基础
本文最后更新于:2023年6月29日 晚上
基础
原码:首位表示符号,其余表示数值
反码:正数的反码是本身;负数的反码除符号位之外,其余各位取反
补码:正数的补码就是其本身;负数的补码是在其反码的基础上加 1
有符号数的加减法需要把数转化为补码进行运算,运算结果仍未补码,若要得到原数,需对所得补码的结果再求一次补码
- 比如
转化
无符号数转有符号数 :
- 无符号数最高位如果是 0,有符号数就是等于无符号数本身 (正数取补码是自身)
- 无符号数最高位如果是 1,将无符号数取补码得到的就是有符号数
- 假设两个最高位是 0 的无符号数相加得到了一个最高位是 1 的有符号数,根据有符号数的运算规则,两个数的补码相加得到的仍为补码,因此要求相对的有符号数的原码,就要取补码得到原码
有符号数转无符号数:
- 有符号数最高位如果是 0,无符号数就是等于有符号数本身 (正数取补码是自身)
- 有符号数最高位如果是 1,将无符号数取补码得到的就是有符号数
- ,因此无符号数通过取补码变成有符号数,有符号数再取补码变成无符号数
二进制基础
https://rufish.top/2023/06/06/二进制基础/