# 基础概念
# 原码
原码表示与机器数真值表示的一样,即用第一位表示符号,其余位表示数值
# 进制转换
最常见的
进制转换,10进制转2进制,10进制转16进制,负数转为16进制,十进制负数转为十六进制
# 整数进制转换
除以R取余法。即整数部分不断除以 R 取余数,直到商为0为止,从下往上取值
# 二进制转八,十六换技巧
以
小数点为中心,将数据分为两组,每3/4位为一组,不够位数在两侧补0
# 八 / 十六进制转二进制
以小数点为中心,将对应的
八进制转为二进制表示的三位,将每个十六进制转为四个二进制位数
# 小数进制转换
乘以R取整法,即小数部分不断乘以R取整数,直到积为0或达到有效精度为止,最先得到的整数为R进制的最高位,最后得到的整数位为最低位,从上往下取。
# 转换流程
负数转换为正数- 先将
十进制转换为二进制,并补位 - 求
反码 - 求
补码 - 转为
十六进制
以
-6为例
# 绝对值6的二进制码并补位后为
0000 0110
#根据原码求反码
1111 1001
# 根据反码求补码
1111 1010
# 每四位一组合,组成十六进制
FA
# 在计算机系统中
在实际上使用
-0的补码表示-128,所以-128并没有原码和反码表示,只要补码是 [1000 0000] 其十进制数值就是 - 128因为补码能多存储一个 - 128,而且在计算机底层中存储的是补码,所以在计算机中一个 8 位的二进制数的存储范围是用补码表示的 [-128,127]
# 牢记
二进制的最高位是符号位:0表示正数,1表示负数正数的原码反码补码都一样,三码合一负数的反码= 它的原码符号位不变,其它位取反负数的补码= 它的反码 +1负数的反码=负数的补码-10的反码,补码都是0
# 参考资料
- 进制转换
- 负数十进制转 16 进制
- 反码补码
