二进制与十进制的转换

二进制的1101转化成十进制

IP地址分5类,A、B、C为基本类
A类:1.0.0.1—126.255.255.254
B类:128.0.0.1—191.254.255.254
C类:192.0.1.1—223.255.254.254
D类为多播地址,不常用
E类保留

1101=1*2^0+0*2^1+1*2^2+1*2^3=1+0+4+8=13
转化成十进制,要从右到左,用二进制的每个数去乘以2的相应次方,次方要从0开始

十进制整数转二进制
如:255=(11111111)B
255/2=127=====余1
127/2=63======余1
63/2=31=======余1
31/2=15=======余1
15/2=7========余1
7/2=3=========余1
3/2=1=========余1
1/2=0=========余1
789=1100010101
789/2=394.5 =1 第10位
394/2=197 =0 第9位
197/2=98.5 =1 第8位
98/2=49 =0 第7位
49/2=24.5 =1 第6位
24/2=12 =0 第5位
12/2=6 =0 第4位
6/2=3 =0 第3位
3/2=1.5 =1 第2位
1/2=0.5 =1 第1位

怎么判断IP地址的是否在同一网段。  相信好多人都认为IP只要前三段相同,就是在同一网段了,其实,不是这样的,同样,我想把IP的每一段转换为一个二进制数,这里就拿IP:192.168.0.1,子网掩码:255.255.255.0做实验吧。

192.168.0.1 
11000000.10101000.00000000.00000001 
(这里说明一下,和子网掩码一样,每段8位,不足8位的,前面加0补齐。)

IP    11000000.10101000.00000000.00000001
子网掩码  11111111.11111111.11111111.00000000

在这里,向大家说一下到底怎么样才算同一网段。

要想在同一网段,必需做到网络标识相同,那网络标识怎么算呢?  各类IP的网络标识算法都是不一样的。A类的,只算第一段。B类,只算第一、二段。C类,算第一、二、三段。  算法只要把IP和子网掩码的每位数AND就可以了。 
AND方法:0和1=0 0和0=0 1和1=1  如:And 192.168.0.1,255.255.255.0,先转换为二进制,然后AND每一位

IP      11000000.10101000.00000000.00000001 子网掩码    11111111.11111111.11111111.00000000 得出AND结果  11000000.10101000.00000000.00000000 
转换为十进制192.168.0.0,这就是网络标识,
再将子网掩码反取,也就是00000000.00000000.00000000.11111111,与IP:192.168.0.1 AND 得出结果00000000.00000000.00000000.00000001,转换为10进制,即0.0.0.1, 这0.0.0.1就是主机标识。   

要想在同一网段,必需做到网络标识一样。     

我们再来看看这个改为默认子网掩码的B类IP 
如IP:188.188.0.111,188.188.5.222,子网掩码都设为255.255.254.0,在同一网段吗? 先将这些转换成二进制 
188.188.0.111
10111100.10111100.00000000.01101111

188.188.5.222
10111100.10111100.00000101.11011010
255.255.254.0 11111111.11111111.11111110.00000000
分别AND,
得  10111100.10111100.00000000.00000000
10111100.10111100.00000100.00000000
网络标识不一样,即不在同一网段。

你可能感兴趣的:(二进制,十进制,同一网段)