C语言中的进制转换

目录

前言

一、权重的概念

二、2进制与10进制的相互转化

(1)2进制转10进制

(2)10进制转2进制

三、2进制与8进制、16进制的相互转化

2进制转8进制

2进制转16进制

16、8进制转2进制

四、8进制、16进制、10进制之间的相互转化


前言

本章我们将学习C语言中的进制转换,包含2进制、8进制、10进制、16进制之间的相互转换,话不多说我们开始今天的学习

一、权重的概念

权重是指某一因素或指标相对于某一事物的重要程度,拿10进制举例来说,给一个数123,个位的权重是10^0,十位的权重是10^1,百位的权重则是10^2

将这个概念类比拓展,2进制个位权重是2^0,十位权重是2^1,10进制个位权重是10^0,16进制个位权重是16^0

二、2进制与10进制的相互转化

(1)2进制转10进制

我们利用前面学习的权重的概念可以完成2进制到10进制的转化

首先我们将已知的2进制数用对应位乘上对应位的权重求和,由于10进制用同样操作得到的值是他本身(如10进制的123得出来的值就是123),那么我们用2进制转换得出来的数便是一个10进制数

给定一个2进制数 1011 ,对应位乘上对应位的权重:1*2^3   0*2^2   1*2^1   1*2^0

求和:1*2^3 + 0*2^2 + 1*2^1 + 1*2^0  =  11

得到的这个值11便是10进制的表示形式

(2)10进制转2进制

我们这里介绍一种用2整除的方法

用2整除10进制整数,得到一个商和余数;再用2去除商,又会得到一个商和余数,如此重复,直到商为小于1时为止,然后把先得到余数作为二进制数的低位有效位后得到的余数作为二进制数的高位有效位,以此排列起来

三、2进制与8进制、16进制的相互转化

2进制转8进制

8进制的数字每一位是0~7的,0~7的数字,各自写成2进制,最多有3个2进制位就足够了,比如7的二 进制是111,所以在2进制转8进制数的时候,从2进制序列中右边低位开始向左每3个2进制位会换算一个8进制位,剩余不够3个2进制位的直接换算

如:2进制的01101011,换成8进制:0153,0开头的数字,会被当做8进制

2进制转16进制

16进制的数字每一位是0~9,a~f的,0~9,a~f的数字,各自写成2进制,最多有4个2进制位就足够了, 比如f的二进制是1111,所以在2进制转16进制数的时候,从2进制序列中右边低位开始向左每4个2进 制位会换算⼀个16进制位,剩余不够4个二进制位的直接换算

 如:2进制的01101011,换成16进制:0x6b,16进制表示的时候前面加0x

16、8进制转2进制

我们直接将前面的步骤逆过来,如16进制每一位换算成4个2进制位,8进制每一位换算成3个2进制位

四、8进制、16进制、10进制之间的相互转化

8进制、16进制转10进制同2进制转10进制相同,利用公式计算出的值即是要求的结果

10进制转8进制、16进制则先将10进制转换为2进制,再将2进制进行转换


 本章到这里就结束啦,希望各位小伙伴可以点个关注,支持一下阿鹿,大家的鼓励是我前进的第一动力,3Q~

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值