二进制与十进制转换与子网掩码计算

首先来了解一下二进制与十进制的转换知识:

二进制数转换成十进制数

二进制数1101-->13
1101(2)=
     1*2^0
    +0*2^1
    +1*2^2
    +1*2^3
    =1+0+4+8
    =13
从右到左,每一位用二进制的1或者0,去乘以2的N-1次方,二进制第一个数最大值为1=2^0

十进制数转换成二进制数

十进制转换为二进制使用的是辗转相除法

十进制数302-->100101110
  用2辗转相除,直至最后结果为1
  将所有的余数倒序写排列即为对应的二进制数
  302/2 = 151 余0
  151/2 = 75  余1
  75/2  = 37  余1
  37/2  = 18  余1
  18/2  = 9   余0
  9/2   = 4   余1
  4/2   = 2   余0
  2/2   = 1   余0
  1/2   = 0   余1
  故十进制302转换等于二进制后为100101110

接下来是二进制与十进制数在网络中的表现方式

子网掩码的前缀表示法

子网掩码一般由4个8位的二进制数表示,使用英文的“.“进行隔离,为了便于识别,电脑支持自动转换为十进制
11111111.11111111.1111111.00000000  #注意这里使用了24个1+8个0组成  所以掩码可以简写为/24
转成成十进制等于 255.255.255.0  
11111111 11111111 1111111 11111100 #注意这里使用了30个1+2个0组成  所以掩码可以简写为/30
转成成十进制等于 255.255.255.252

当我们开启多个服务器时,我们总发现供应商提供的是类似于:

10.0.0.1/29、10.0.0.1/28、10.0.0.1/30 的地址给我们, 网络工程师以外的人很难记住网关、掩码、广播地址、前缀、后缀、ASN、CIDR到底是什么,所以提供一个简要的速查表:

已知子网掩码一般有32位,掩码在32个1-32个0中间变化,斜杠后的数字指的是左到右一共有多少个数字1:

掩码 IP划分 子网掩码 使用C段
/30 4 255.255.255.252 1/64
/29 8 255.255.255.248 1/32
/28 16 255.255.255.240 1/16
/27 32 255.255.255.224 1/8
/26 64 255.255.255.192 1/4
/24 256 255.255.255.0 1
/23 512 255.255.254.0 2
/22 1024 255.255.252.0 4
/21 2048 255.255.248.0 8
/20 4096 255.255.240.0 16
/19 8192 255.255.224.0 32
/18 16384 255.255.192.0 64
/17 32768 255.255.128.0 128
/16 65536 255.255.0.0 256

示例:

宽带服务商提供了1.1.1.8/29的IP段作为宽带接入:

  • /29表示宽带运营商分配了8个可用IP
  • 将1.1.1.0-1.1.1.254网段256个IP按照8各一组分开
  • 1.1.1.8在第二组,因此第二组所有的IP就是宽带服务商提供的可用IP
  • 为了保证与外部通信,需要取一个与外部设备互联接口IP,这个IP一般叫做网关Gateway
  • 为了保证同网内通信,需要曲一个向内部广播数据包IP,这个IP一般叫做广播地址
  • 因此 1.1.1.8/29网段分配的8个IP中,其中六个可用