题:给出一个网络的IP地址和子网掩码,求网络号(包括子网络号)
方法:网络号=IP地址 & 子网掩码
上述:如果快速地将一个数字转换为二进制?而不是传统的连续除2的方法?
分析:由于子网掩码的最左边的1对应网络号(包括子网络),所以与IP地址的转换分开来算,具体技巧如下。
技巧:
子网掩码转换为二进制,只要记住如下对应关系:
----------------------------------------------------------------------------------------------------------------
连续1的个数 数值 对应的二进制
8 255 1111 1111
7 254 1111 1110
6 252 1111 1100
5 248 1111 1000
4 240 1111 0000
3 224 1110 0000
2 192 1100 0000
1 128 1000 0000
------------------------------------------------------------------------------------------------------------------
IP地址转换为二进制,只要记住以下数字,然后从大到小尝试累加
2^8=256
2^7=128
2^6=64
2^5=32
2^4=16
2^3=8
2^2=4
2^1=2
2^0=1
假如某个IP地址为194.***.***.***,则194=128+64+2=2^7+2^6+2^1=1100 0010 (写的时候从左向右写,依次读76543210,其中7,6,1均填1,其他的都为0
通过以上两种技巧,便可以通过给定IP地址和子网掩码,很快求出对应的网络号。