(零基础)零基础学习进制(超简单超详细)(二进制,十进制,十六进制等)

对于程序员来说,进制问题大家再熟悉不过了,本文是基于入门初学者,一些相关的简单介绍,若有相关问题,,请联系笔者。

二进制

所谓二进制,就是逢二进一,可能有人会问,二进制是为什么是1和0,这是因为电脑处理数据时,其实质是判断有没有电,而1代表有电,0代表没有电。

二进制转换为十进制

我们既然要转换,就要懂得权重,我就简单抽象的描述一下,比如M进制,它的第N位的权重是M^{N-1}.,你可能还不太理解,我们看个例子

如110101,从右边开始,第一位的权重就是2^{0},第二个的权重是2^{1},以此类推,即1的权重是2^{0}而0的权重是2^{1},以此类推,特别注意是从右边向左边数。

而上面的二进制要转换为十进制的话,流程如下

再例如10101001

接下来介绍

十进制转换为二进制

解释一下下图:

我们要求十进制217的二进制,只需要将它除于2,得到的余数写在其后面,如下面照片开头的217除以2,商108,217-2x108=1;再将108除以2,以此类推,直到这个除以二的这个数是1,不是余等于1,而是108最后的位置为1.然后从下往上取余数,即最下面的那一个为左边第一个,最上面的为从左往右的最后一个,就是与之对应的二进制。即217的二进制为11011001

当然,这是最基础的一种方法,一般把二进制转换为十进制的方法使用熟练了,其实是可以用一种不规范的方法快速得出的,但是需要对二进制转换熟练

我们可以记住从右边向左边的二进制如果全部都是一的话,对应的从右边往左边就是1,2,4,8,16,32,64 如下图

例如十进制的45,我们把它拆开,发现它等于32+8+4+1或者等于32+0+8+4+0+1(这样更加直观)所以再对应上面的数字,就能知道45的二进制是101101

八进制转十进制

这和上面的二进制转十进制是完全一样的道理,只不过权重发生了改变。我在此举几个例子来说明即可。理解了二进制与十进制的转换,其他的就好理解了

把八进制的130转化为10进制。

从右往左数第一位所占的权重是8^{0},第二位是8^{1},第三位是8^{2}

所以我们用权重乘以各自的位数。

既0*8^{0}+3*8^{1}+1*8^{2}=64+24=88。

十六进制转十进制

这个其实和上面的没什么区别,只是权重发生了变化,二进制转换为十进制,指数的底数是2,八进制转换为十进制,底数为8,同理,十六进制转换为十进制,底数换为16即可

例如

把150这个十六进制的数转化为10进制。

从右往左数第一位权重数16^{0},第二位是16^{1},第三位是16^{2}

所以我们用权重乘以各自的位数

0*16^{0}+5*16^{1}+1*16^{2}=80+256=336.

二进制转八进制

怎么解释呢,就是将二进制三位数之和作为八进制的一位,例如

1100110

我们将从右边开始数三位,即110作为八进制的个位数,将100作为八进制的十位数,那还剩一个怎么办,我们在它的前面补两个0 构造三个数,即将001作为八进制的百位,得到的结果是(1100110)的八进制为(146)

再例如1101101,过程如下,结果是155

八进制转二进制将上面的步骤反过来就行。理解了上面的转换再进行反转换应该问题不大

二进制转换为十六进制

二进制转换八进制时是将二进制的三位数作为八进制的一位

而二进制转十六进制是将二进制的四位作为十六进制的一位,也就是将从右边向左边数的四位作为十六进制的个位

以下是例子

即结果为769

其他进制转换

其他进制的转换,如八进制和十六进制的转换,需要以二进制为介质,先将八进制转换为二进制,然后再转换为十六进制。

含有小数的转换

经过前面的认真学习,想必大家已经有了一点的想法,可以看一下的例子来理解小数部分的转换

1011010.100101(2)=90.578125(10)

方法:

2561286432168421.0.50.250.1250.06250.031250.0156250.0781250.00390625
2827262524232221202-12-22-32-42-52-62-72-8
//1011010.100101//

64+0+16+8+0+2+0+0.5+0+0+0.0625+0.015625=90.578125(10)

或者

1011010.100101(2)
=1×26 + 0×25 + 1×24 + 1×23 + 0×22 + 1×21 + 0×20 + 1×2-1 + 0×2-2 + 0×2-3 + 1×2-4 + 0×2-5 + 1×2-6
=64+0+16+8+0+2+0+0.5+0+0+0.0625+0+0.015625
=90.578125(10)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
二进制转八:使用 PHP 内置函数 decoct(),将二进制数转换为十进制数,再将十进制数转换为八数。例如,将二进制数 11010 转换为八数,步骤如下: 1. 将二进制数 11010 转换为十进制数,使用 bindec() 函数,得到十进制数 26。 2. 将十进制数 26 转换为八数,使用 decoct() 函数,得到八数 32。 因此,二进制数 11010 转换为八数为 32。 二进制十六进制:使用 PHP 内置函数 dechex(),将二进制数转换为十进制数,再将十进制数转换为十六进制数。例如,将二进制数 11010 转换为十六进制数,步骤如下: 1. 将二进制数 11010 转换为十进制数,使用 bindec() 函数,得到十进制数 26。 2. 将十进制数 26 转换为十六进制数,使用 dechex() 函数,得到十六进制数 1A。 因此,二进制数 11010 转换为十六进制数为 1A。 八二进制:使用 PHP 内置函数 decoct(),将八数转换为十进制数,再将十进制数转换为二进制数。例如,将八数 32 转换为二进制数,步骤如下: 1. 将八数 32 转换为十进制数,使用 octdec() 函数,得到十进制数 26。 2. 将十进制数 26 转换为二进制数,使用 decbin() 函数,得到二进制数 11010。 因此,八数 32 转换为二进制数为 11010。 八十进制:使用 PHP 内置函数 octdec(),将八数转换为十进制数。例如,将八数 32 转换为十进制数,直接使用 octdec() 函数,得到十进制数 26。因此,八数 32 转换为十进制数为 26。 八十六进制:使用 PHP 内置函数 decoct(),将八数转换为十进制数,再将十进制数转换为十六进制数。例如,将八数 32 转换为十六进制数,步骤如下: 1. 将八数 32 转换为十进制数,使用 octdec() 函数,得到十进制数 26。 2. 将十进制数 26 转换为十六进制数,使用 dechex() 函数,得到十六进制数 1A。 因此,八数 32 转换为十六进制数为 1A。 十六进制二进制:使用 PHP 内置函数 hexdec(),将十六进制数转换为十进制数,再将十进制数转换为二进制数。例如,将十六进制数 1A 转换为二进制数,步骤如下: 1. 将十六进制数 1A 转换为十进制数,使用 hexdec() 函数,得到十进制数 26。 2. 将十进制数 26 转换为二进制数,使用 decbin() 函数,得到二进制数 11010。 因此,十六进制数 1A 转换为二进制数为 11010。 十六进制转八:使用 PHP 内置函数 hexdec(),将十六进制数转换为十进制数,再将十进制数转换为八数。例如,将十六进制数 1A 转换为八数,步骤如下: 1. 将十六进制数 1A 转换为十进制数,使用 hexdec() 函数,得到十进制数 26。 2. 将十进制数 26 转换为八数,使用 decoct() 函数,得到八数 32。 因此,十六进制数 1A 转换为八数为 32。 十六进制十进制:使用 PHP 内置函数 hexdec(),将十六进制数转换为十进制数。例如,将十六进制数 1A 转换为十进制数,直接使用 hexdec() 函数,得到十进制数 26。因此,十六进制数 1A 转换为十进制数为 26。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值