二进制与八进制、十进制、十六进制之间的相互转换

计算机中有四种进制方式:
1、二进制:由0和1两个数字组成。
2、八进制:八个符号,由0~7八个数字组成。开头一般以0开头。
3、十进制:十个符号,由0~9十个数字组成,不能以0开头。是咋们日常生活中最常用的数字。
4、十六进制:十六个符号,由0~9个数字和a-f组成。a表示数字10,b表示数字11,以此类推。一般都是以0x开头。

一、二进制与其他进制之间的转换
(1)二进制转十进制:按权展开求和。就是二进制的为1的位乘以该位的n次方,最后把每个得出来的数相加。以下例子:
1011.1=2^3+2 ^1+2 ^0+2 ^-1=11.5
1011.1(2)->11.5(10)

(2)二进制转八进制:将二进制数字分为3位一体,将3位一体的数字算出其结果,最后组成八进制数。如下图所示:
在这里插入图片描述
10110111(2)->267(8)
(3)二进制转十六进制:将二进制数字分为4位一体,将4位一体的数字算出其结果,最后组成十六进制数。如下图所示:
在这里插入图片描述
10110111(2)->0x7b(16)
对于小数,有小数点时小数点的位置不变,如果最后一组数字不满四位时,加0补充如下:
在这里插入图片描述
二、八进制与其他进制之间的转换。
(1)八进制转二进制:将八进制的每个数字的值转成二进制的表示方式,最后按顺序书写即可。如下所示:
在这里插入图片描述
对于小数,小数点的位置不变,对应小数位化成进制即可。
(2)八进制转十进制:与二进制转十进制基本相似,按权相加法,只不过对应位置乘以8的n次方,再把所得的数字相加。如下所示:
213=28^2+1 8^1+3=139
213(8)->139(10)

(3)八进制转十六进制:八进制于十六进制之间是无法相互转换的,一般有两种转法第一种是将八进制转十六进制可以先把八进制转换成二进制,再把二进制转换成十六进制。第二种是先将八进制转换成十进制,再将十进制转换成十六进制。
三、十进制与其他进制之间的相互转换
(1)十进制转二进制:一般采用“除2取余,逆序排列”的方法。具体做法是:用2整除十进制数,可以得到一个商和一个余数,再用商去除以2,又会得到商和一个余数,直到商小于1为止。最后将得到的余数逆序排列,就是先得到的余数作为低位有效位,后得到的余数作为高位有效位,以此排列。如下图所示:
在这里插入图片描述
9/2=4…1
4/2=2…0
2/2=1…0
1/2=0…1
将所得的余数按从下到上以此排列得到的结果位1001.
(2)十进制转八进制:有两种转换方法。第一种可以先将八进制转换成二进制,再将二进制转换成八进制。第二种可以参照十进制转二进制的方法,除8取余法。第二种方法中如果是小数,小数的整数部分按照除八取余法,小数的小数部分按照乘八取整法,也就是将小数部分乘以8,然后取整数,再将剩下的小数部分继续乘以8,再取整数。直到小数部分为0.如果小数一直不为0,就取3舍4入。
(3)十进制转十六进制:与前面方法将为类似,将十进制数处以16取余,直到商为0为止,然后逆序取余。
四、十六进制与其他进制之间的转换。
(1)十六进制与二进制之间的转换:将所拿到的十六进制数的每一位数字转换成四位二进制数。需要注意的是,不满四位时需要补0,合在一起后需要将首位的0去掉。比如:
十六进制的7F,转换成二进制为1111111B.
因为:7转换成二进制为0111B,F转换成二进制为1111B,合在一起为1111111B.
(2)十六进制转八进制:可以先将十六进制转换成二进制再转换成八进制;
(3)十六进制转十进制:首先得知道16进制数从右到左以此时第0位、第1位。。。第0位时16的0次方,第1位是16的1次方。。。
十六进制转换成十进制的公式就是:从右到左用二进制的数去乘以16对应的次方,然后相加。比如:
af5转换成十进制数位:
第0位:5 *16^0=5
第1位:f *16^1=15 *16^1=240
第2位:a *16^2=10 *16^2=2560
结果是:5+240+2560=2805
所以af5(16)->2805(10)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值