二进制转十进制算法
来源:百度知道 编辑:UC知道 时间:2024/05/10 13:49:54
我们在网络上经常遇到要ip转为二进制来划分或汇总子网,所以要找一种最快速的十进制转二进制的方法!
这种算法用除16来算,基于我们对16以内的二进制很熟悉!朋友你也许也奇怪,除16不是算16进制转换的吗?
呵呵,下面看来我说.(我们用d表示10进制,用b表示2进制)
公式是a(d)÷16=b 余c. 然后用b&c=d(b)(什么,看不懂?公式自己创的,看不懂也不怪我举例)
如我们算175(d)的二进制!
175÷16=10 余 15
10的二进制是1010
15的二进制是1111
所以10&15=10101111(b)
也就是10是2进制的前4位,15是2进制的后4位!
所以175(d)=10101111(b)
呵呵,学会了吗,是不是很快速!
二进制数第0位的权值是2的0次方,第1位的权值是2的1次方……
所以,设有一个二进制数:0110 0100,转换为10进制为:
下面是竖式:
0110 0100 换算成 十进制
第0位 0 * 20 = 0
第1位 0 * 21 = 0
第2位 1 * 22 = 4
第3位 0 * 23 = 0
第4位 0 * 24 = 0
第5位 1 * 25 = 32
第6位 1 * 26 = 64
第7位 0 * 27 = 0 +
---------------------------
100
用横式计算为:
0 * 20 + 0 * 21 + 1 * 22 + 1 * 23 + 0 * 24 + 1 * 25 + 1 * 26 + 0 * 27 = 100
0乘以多少都是0,所以我们也可以直接跳过值为0的位:
1