首页 > 编程知识 正文

ip十进制转换二进制的算法,ip地址十进制转二进制计算器

时间:2023-05-04 03:20:12 阅读:217847 作者:1339

今天有个朋友问了个问题,看到IP地址转二进制,顺便复习了一下,没想到发现了诀窍

首先要搞清楚IP地址的区间是0到255,共分为a,b,c,d,e五个区间,

A    0-127

B    128-191

C    192-223

D    224-239

E    240-255

IP最大的数是255

每个IP由四组八位的二进制组成,从左往右起分别是2的(n-1)次方,所以随便拿一个256以内的数度给你化为二进制,都可以分解为权值相问加。对应的权值的位值为1,其他位为0即可。

IP是八位,

键值从左到右                           1,      2,      3,     4,      5,      6,        7,      8

幂值从左到右也就是 2的          7,     6,      5,      4,      3,      2,       1,      0 次方

次方值从左往右是:2^n-1 :128,     64,      32,      16,        8,         4,         2,        1

例如:IP:192.168.80.71 转换成二进制

192 = 128 + 64       =  2^7 + 2^6   ,所以得知第一位和第二位上面有值,其他位上没有值,转换成二进制就是                    11000000

168 = 128 + 32 + 8 =  2^7 + 2^5 + 2^3  ,所以得知7对应的第一位,5对应的第三位,3对应的第五位有值,其他位为0,10101000

80   = 64 + 16         =  2^6 + 2^4 , 所以得知6对应的第二位,4对应的第四位有值,其他为0,二进制为                              01010000

71 = 64 + 4 + 2 + 1 = 2^6 + 2^2 + 2^1 + 2^0 ,分别是6对应的第2位,2->第6,1-->7,0-->8位上有值,所以二进制为         01000111

 

延伸

利用上面的计算下1000的二进制

已知2^10 = 1024,   1000小于1024,所以突破口是2的9次方

2^9 = 512

2^8 = 256

2^7 = 128

2^6 = 64

2^5 = 32

2^3 = 8

2^0 = 1

512 + 256 + 128 + 64 + 32 + 8 + 1 = 1001

所以1001的二进制为 9、8、7、6、5、3、0位上有值,为1,其他位上为0,套公式位2^(n-1) 得知 n = 9+1 = 10,所以,1001的二进制一共有十位,二进制为:1111101001

 

二进制转换成十进制:

 

二进制:        1         1        1         1        1        0         1        0         0          1

对应幂值:     9         8         7        6         5        4        3         2        1          0

2的次方:       2^9    2^8     2^7   2^6      2^5               2^3                          2^0

次方值:         512 + 256  + 128 + 64 + 32 +      0      + 8      +  0   +  0   +    1  = 1001

 

 

 

 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。