# 基础概念
# 原码
原码
表示与机器数真值
表示的一样
,即用第一位
表示符号
,其余位
表示数值
# 进制转换
最常见的
进制转换
,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
负数
的反码
=负数的补码-1
0
的反码
,补码
都是0
# 参考资料
- 进制转换
- 负数十进制转 16 进制
- 反码补码