Linux 子网掩码计算, 二进制十进制互相转换

时间:2023-03-09 04:17:46
Linux 子网掩码计算, 二进制十进制互相转换

看下边例子

192.168.0.1/24
192.168.0.1/32
192.168.0.1/28

上边24,32,28对应的掩码都是什么,怎么计算的

24,32,28,对应的就是多少个二进制的1

24

11111111 11111111 11111111 00000000

32

11111111 11111111 11111111 11111111

28

11111111 11111111 11111111 11110000

二进制转换十进制

如何转换的呢

首先 11111111 = 255

那么28就是

11111111 11111111 11111111 11110000

255.255.255.[2^7+2^6+2^5+2^4]=240
由此可以计算出他的掩码为255.255.255.240

十进制转换二进制

那么,十进制转换二进制是如何转换的呢

我们先写一个数

241

给它除2,能整除的记录0,不能整除的记录1

241/2 = 120 ········    1
120/2 = 60 ········ 0
60/2 = 30 ········ 0
30/2 = 15 ········ 0
15/2 = 7 ········ 1
7/2 = 3 ········ 1
3/2 = 1 ········ 1
1/2 = 1/2 ········ 1

由下到上依次为1111 0001 那么结果对不对呢,我们计算一下

1      1     1     1      0    0   0    1
2^7 + 2^6 + 2^5 + 2^4 + 0 + 0 + 0 + 2^0
128 + 64 + 32 + 16 + 0 + 0 + 0 + 1 = 241