二进制与十进制之间的转换——基于位权

整数部分

以一个字节举例,有8个bit,每个bit有0、1两种状态,理论上一共有2^8种状态,可以表示0~255

现在需要将200转为二进制

200大于128,因此第八位是满足位权的,第八位为1

剩下的72(200-128=72)满足第7位的位权64,

剩下8,第6、5的位权都不满足,都是0,第4位满足8,为1。

剩下0,余下的bit全是0。

转换后的二进制表示为:11001000

小数部分

先看位权

看一个例子

将0.5625转二进制

首先满足第一位权0.5,该位为1

剩下0.0625不满足第2、3位,都是0,第4位满足,为1

结果是0.1001

「注意」

在计算机的世界中,浮点数是不能精确表示出来的,会存在误差。

posted @ 2020-08-15 11:15  宗吾先生  阅读(1632)  评论(0编辑  收藏  举报