[数制与码制]: 有关十进制转换和二进制负数小数补码表示

关于十进制转换

数电第一课,关于各进制数的转换;2,8,16进制的转换也不用说什么,主要是关于10进制转换其他进制会麻烦一点;
而在这之间,由其他进制转为10进制更是棘手;按权相加属实是麻烦了点;

比如1101.1011
2 3 + 2 2 + . . . 2^3+2^2+... 23+22+...这样算显然麻烦了点
当然,直接 8 + 4 + 1 + 1 2 + . . . 8+4+1+\frac{1}{2}+... 8+4+1+21+...会快些;
但是我还想更快
D . B D.B D.B这样子,显然D.B不能是13.11,而是 13 + 11 16 = 13.6875 13+\frac{11}{16} = 13.6875 13+1611=13.6875

这样做其实就是记住了对应的十六进制数;好吧,无他,惟手熟耳。

二进制4位一组,每多4位做相应的处理;

1 1101.1011 1000 = 1 × 16 + 13 + 11 16 + 8 256 1\times16+13+\frac{11}{16}+\frac{8}{256} 1×16+13+1611+2568

8进制如何呢?emmmm 不行,老实算。

关于二进制负小数补码表示

正数:原码反码补码一致;
负数:反码为(原码)取反,补码取反加一;
ALL: 符号位不变

最高位为符号位;负数为1,正数为0;这个都明白,要注意的只是:

原码1.1001 这是-0.1001还是+1.1001?
答案是: -0.1101

这个问题很多人拿标准说事,确实,论实用,不把它搞成8位16位32位什么的没法在计算机中使用;
但是我做个题,还要补上上几个0更是没必要;

我的理解是:补码最高位就是符号位,你需要几位,这几位的最高位就是符号位

所以原码1.1001代表 -.1001,也就是-0.1001;
+1.1001的原码就是01.1001,因为你N的小数点左边有1位(不包括符号位),N的原码的小数点左边就有两位,就是两位,最高位是0也不能消掉;

所以上面那个问题特意说明了原码1.1001,如果不说明的话,讨论“是-0.1001还是+1.1001”确实没有多大意义。

都知道原码反码补码原理类似钟表,23点之后是0点,我没有必要为了标准什么的把表盘扩充成100小时的;
工程上8位,16位数来表示负数是因为需要,我写个作业不需要8位16位;

果然上课还是要认真听啊⊙﹏⊙∥。

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

川九-EveRYouNg

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值