[C/C++/初学者] 各进制之间的相互转换(12种情况详解)

大家好,这里是渡枫。

本期是进制转换的专栏,

话不多说,直接开始。

Link Start!

目录

概念

①二进制

②八进制

③十进制

④十六进制

进制转换

①二进制转八进制

②八进制转二进制

③ 二进制转十进制(估计...不需要?)

④十进制转二进制

⑤二进制转十六进制

⑥十六进制转二进制

⑦八进制转十进制

⑧十进制转八进制

⑨八进制转十六进制

⑩十六进制转八进制

⑩①十进制转十六进制

⑩②十六进制转十进制


概念

①二进制

二进制是计算技术中广泛采用的一种数制。

二进制数据是用0和1两个数码来表示的数。

它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”。

如:10101110、101

②八进制

八进制,Octal,缩写OCT或O,一种以8为基数的计数法,

八进制数据采用0,1,2,3,4,5,6,7八个数字来表示,逢八进1。

它的基数为8,低位数和高一位数之间的关系是"逢八进一"。

八进制数通常是无符号数,在编程中以数字0开始表明该数字是八进制。

如:0017、0123、0177777

③十进制

其表示与数学上的整数表示相同。

④十六进制

十六进制中,用A来表示10,B表示11,C表示12,D表示13,E表示14,F表示15,因此有 0~F 共16个数字。

它的基数为16,加法运算时"逢16进1",减法运算时"借1当16"。

如: 0、1、6、9、A、D、F、419、EA32、80A3、BC00 都是有效的十六进制。

进制转换

①二进制转八进制

二进制整数转换为八进制正数时,每3位二进制整数转换为1位八进制整数。

运算的顺序是从低到高依次进行,高位不足三位用零补齐。

例如:将1010110 转换为八进制,结果为:126。

②八进制转二进制

八进制整数转二进制整数时,思路是相反的。

每一位八进制整数转换为三位二进制整数,运算的顺序也是从低位向高位依次进行即可。

③ 二进制转十进制(估计...不需要?)

例如:将110转换位十进制,结果为:6。

④十进制转二进制

十进正数转换二进制整数时,需要不断的将原本的数除以2,不断得到新的商和新的余数(保留),只到商最终为0。

例如:42转换为二进制,结果为:101010

⑤二进制转十六进制

二进制整数转换为十六进制整数时,每4位二进制转换为1位十六进制整数。

运算的顺序是从低位向高位依次进行,高位不足四位用零补齐,与转八进制类似。

还是使用1010110作为例子,结果为:56

⑥十六进制转二进制

十六进制数转为二进制数时,思路也是相反的。

每1位十六进制数字转换为4位二进制数字,运算的顺序也是从低位向高位依次进行。

⑦八进制转十进制

八进制数转换为十进制数时,最重要的就是注意幂的变化。

没有运算的顺序,每个数只要乘上它的位权。

那么,什么是权位呢?

假设当前数字是 n 进制,那么:

  1. 对于整数部分,从右往左看,第 i 位的位权等于n^i-1
  2. 对于小数部分,恰好相反,要从左往右看,第 j 位的位权为n^-j。

例如此处,0的位权是8^7,7的位权是8^0。

例如:将01234567转换为十进制数。

⑧十进制转八进制

十进正数转换八进制整数时,需要不断的将原本的数除以8,不断得到新的商和新的余数(保留),只到商最终为0。

例如:36926转换为二进制,结果为:110076

⑨八进制转十六进制

不能直接转换,

可以先转换成二进制或十进制,再转换位为十六进制。

⑩十六进制转八进制

不能直接转换,

可以先转换成二进制或十进制,再转换位为十六进制。

⑩①十进制转十六进制

十进制整数转换十六进制整数时,需要不断的将原本的数除以16,不断得到新的商和新的余数(保留),只到商最终为0。

方法过程与此前的类似,故不在赘述。

例如:36926转换为二进制,结果为:903e

⑩②十六进制转十进制

十六进制整数转换十六进制整数时,需要按权展开并相加。

例如:903e转换为十进制,结果为:36926

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

渡过晚枫

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

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

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

打赏作者

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

抵扣说明:

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

余额充值