# 基础概念

# 原码

原码 表示与 机器数真值 表示的 一样 ,即用 第一位 表示 符号其余位 表示 数值

原码补码反码转换

# 进制转换

最常见的 进制转换10进制2进制10进制16进制负数 转为 16进制十进制负数 转为 十六进制

常规进制转换

# 整数进制转换

除以R取余法 。即整数部分不断除以 R 取余数,直到 商为0 为止, 从下往上 取值

# 二进制转八,十六换技巧

小数点 为中心,将数据分为 两组 ,每 3/4位一组 ,不够位数在 两侧补0

二进制转为八进制或十六进制

# 八 / 十六进制转二进制

以小数点为中心,将对应的 八进制 转为 二进制 表示的 三位 ,将每个十六进制转为四个二进制位数

八/十六进制转为二进制

# 小数进制转换

乘以R取整法 ,即 小数部分 不断 R取整数 ,直到 积为0达到有效精度 为止,最先得到的整数为 R进制 的最 高位 ,最后得到的整数位为 最低位 ,从 上往下 取。

小数部分进制转换

# 转换流程

  • 负数 转换为 正数
  • 先将 十进制 转换为 二进制 ,并 补位
  • 反码
  • 补码
  • 转为 十六进制

-6 为例

# 绝对值6的二进制码并补位后为
0000 0110
#根据原码求反码
1111 1001
# 根据反码求补码
1111 1010
# 每四位一组合,组成十六进制
FA

-6的补码表示

# 在计算机系统中

在实际上使用 -0 的补码表示 -128 ,所以 -128 并没有 原码反码 表示,只要补码是 [1000 0000] 其十进制数值就是 - 128

因为补码能多存储一个 - 128,而且在计算机底层中存储的是补码,所以在计算机中一个 8 位的二进制数的存储范围是用补码表示的 [-128,127]

# 牢记

  • 二进制 的最高位是 符号位0 表示 正数1 表示 负数
  • 正数原码反码补码 都一样, 三码合一
  • 负数的反码 = 它的 原码符号位不变 ,其 它位取反
  • 负数的补码 = 它的 反码 +1
  • 负数反码 = 负数的补码-1
  • 0反码补码 都是 0

# 参考资料

  • 进制转换
  • 负数十进制转 16 进制
  • 反码补码