嵌入式软考(一)数值表示和各进制之间转换

First

数值的转换

二进制与十进制:

二进制转十进制:101010(有6位) = (1 * 2^5) + (0 * 2^4) + (1 * 2^3) + (0 * 2^2) + (1 * 2^1) + (0 * 2^0)

=32 + 0 +8 + 0 +2 +0

=42

十进制转二进制:57

  1. 将57除以2,得到商28,余1(LSB,最低有效位)。
  2. 将商28再除以2,得到商14,余0。
  3. 将商14再除以2,得到商7,余0。
  4. 将商7再除以2,得到商3,余1。
  5. 将商3再除以2,得到商1,余1。
  6. 将商1再除以2,得到商0,余1(MSB,最高有效位)
  7. 将余数从下往上排列,转换二进制位111001

二进制与八进制:

二进制转八进制:1101101

  1. 按照高位将3个化为一组:110 110 1

  2. 然后,将每组转换为对应的八进制数:

    110(二进制)= 6(八进制)

    110(二进制)= 6(八进制)

    1(二进制)= 1(八进制)

  3. 最后,将每组的八进制数连在一起,即得到最终的八进制数:

    1101101(二进制)= 661(八进制)

八进制转二进制:123(八进制)

  1. 将八进制数的每一位分别转换成对应的三位二进制数

    1:001

    2:010

    3:011

  2. 将这些三位二进制数连接在一起,即得到最终的二进制数:

    123(八进制) = 001010011(二进制)

二进制与十六进制:

二进制转十六进制:110110101

  1. 将二进制数按照每四位一组进行分组:1101 1010 1

  2. 将每组转换为对应的十六进制数:

    1101(二进制)= D(十六进制)

    1010(二进制)= A(十六进制)

    1(二进制)= 1(十六进制)

  3. 将每组的十六进制数连在一起,即得到最终的十六进制数:

    110110101(二进制)= DA1(十六进制)

十六进制转二进制:3F7

  1. 将十六进制数的每一位分别转换成对应的四位二进制数:

    数字3转换成二进制数为0011

    字母F转换成二进制数为1111

    数字7转换成二进制数为0111

  2. 将这些四位二进制数连接在一起,即得到最终的二进制数:

    3F7(十六进制)= 001111110111(二进制)

十进制小数转换二进制

十进制:0.10

  1. 将0.10乘以2得到0.20,整数部分为0,记录下0。
  2. 将0.20乘以2得到0.40,整数部分为0,记录下0。
  3. 将0.40乘以2得到0.80,整数部分为0,记录下0。
  4. 将0.80乘以2得到1.60,整数部分为1,记录下1。
  5. 将0.60乘以2得到1.20,整数部分为1,记录下1。
  6. 将0.20乘以2得到0.40,整数部分为0,记录下0。
  7. 将0.40乘以2得到0.80,整数部分为0,记录下0。
  8. 将0.80乘以2得到1.60,整数部分为1,记录下1。
  9. 重复以上步骤

在这个过程中,小数部分出现了重复的循环,因此小数部分不再改变。

因此,0.10的二进制表示为0.00011001100110011…

反码

定义:将负数的绝对值的二进制表示按位取反(0变1,1变0)

-5:绝对值5;5二进制0000 0101

取反为1111 1010;

在反码中,负数的最高位为1,表示负数,而正数的最高位为0,表示正数

补码

定义:将负数的绝对值的二进制表示按位取反,然后加1

-5:反码为 1111 1010

补码:反码+1;1111 1011

-5的二进制表示(-5的补码):1111 1011

移码

补码的符号位(最高位)取反

数值范围

源码:-(2n-1- 1) ~ 2n-1 - 1

反码:-(2n-1 - 1) ~ 2n-1 - 1

补码:-2n-1 ~ 2n-1 - 1

移码:-2n-1 ~ 2n-1 - 1

浮点数

N = Re * M

M:尾数

e:指数(通常移码表示)

R:基数(通常为2)

十进制浮点数表示: 25.125

  1. 整数部分:25(D:decimal) = 1 1001(B:binary)
  2. 小数部分:0.125(D) = 0.001(B)
  3. 25.125(D) = 11001.001(B) = 1.1001001 * 2^4(B)
  4. 符号位S:正数为0;尾数M:1.1001001 指数E:4(D) = 100(B)

存储方式:符号位 | 指数(价码) | 尾数

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值