二进制与十进制的转换
2024-03-19 本文已影响0人
虽然菜
二进制怎么表示数
计算机使用二进制是因为在物理实现上只需要取两种可能的极端状态来表示0或1
![](https://img.haomeiwen.com/i5259954/7424a62ad42f3310.png)
先回顾一遍十进制如何表示数
进制表示数的原理其实是一样的,不论是二进制、十进制,还是八进制和十六进制。
理解二进制表示数,我们先来看看十进制是怎么表示数的,以3875为例
![](https://img.haomeiwen.com/i5259954/361550c1dbba6d74.png)
![](https://img.haomeiwen.com/i5259954/eecb74259f5c9684.png)
从右往左,依次规定为0位,1位……
任何进制的数表示大小都是用:数字*进制的对应位数次方
二进制表示数
请先理解十进制表示数的原理再往下看。要不的……上面的不懂就往下看,你在想啥?
![](https://img.haomeiwen.com/i5259954/db349967211c0b78.png)
我们把对应位上是1的数加起来,比如:10010110
![](https://img.haomeiwen.com/i5259954/57e70b43c3ac5523.png)
位数上是1的有:128+16+4+2=150
小练一下:
1、10101101=?
2、111=?
3、10000111=?
4、1001=?
5、11110000=?
6、100000=?
7、10101010=?
8、1010101010=?
二进制表示小数
其原理和整数部分其实是一样的,小数点后面的表示2的负次方。把1对应位上的数值加起来。
![](https://img.haomeiwen.com/i5259954/c91c172d6e7b935d.png)
其他进制
其他进制转换的原理也是一样的,这里就不讲了。
需要提一下的是,十六进制因为数字不够用,所以用A表示10,B表示11,依此类推。
![](https://img.haomeiwen.com/i5259954/1aa3fd30bf5c6c77.png)
十进制整数转二进制
十进制转二进制分为整数和小数两个部分:
![](https://img.haomeiwen.com/i5259954/23f4dc03cc96b3d6.png)
整数部分
用一个数为例:182
![](https://img.haomeiwen.com/i5259954/067ab4c80b7b344e.png)
所以182的二进制就是:10110110
如果数值不大,也可以直接用打表的方式,从左往右,依次减,能减去就是1,不能减就是0
![](https://img.haomeiwen.com/i5259954/ba458def30157e51.png)
小数部分
也是用一个数举例:3.304
![](https://img.haomeiwen.com/i5259954/441d625a41c730f3.png)
3.304转换成二进制后完整的是:11.0100110111010010111100011010100111111011111001111
小数用二进制表示经常需要很多位,超出float和double的范围,所以计算机的小数会存在 精度丢失问题 。