IP地址与二进制之间的转换

IP地址与二进制之间的转换

在讨论如何进行IP地址与二进制之间的转换前, 有必要解释一下IP地址与二进制的概念

IP

  • IP协议是网络层的一个协议, 是能使连接到网上的所有计算机网络实现相互通信的一套规则, 目的是根据源主机和目的主机的地址来传送数据.
  • IP地址是一组能够识别主机和所在网络的编号, 由32位二进制数组成(等于4字节),为便于使用,常以XXX.XXX.XXX.XXX形式表现,每组XXX代表小于或等于255的10进制数。
  • 每个IP地址(尽管它看起来分为四部分)被分解成两个部分......但这些部分并不相同。部分IP地址用于“网络ID”,其余地址用于“主机ID”.网络ID可以定位你所在的某个特定网络, 而主机ID可以定位你所在网络正在使用的主机
  • 大多数IP地址可以划分地址类别:

    • A类地址:IP地址的前8位用于网络ID。最终的24位用于主机ID.(192.168.16.10)
    • B类地址:IP地址的前16位用于网络ID。最后的16位用于主机ID.(192.168.16.10)
    • C类地址:IP地址的前24位用于网络ID。最后的8位用于主机ID.(192.168.16.10)
      Ps:网络ID永远在主机ID之前

二进制

我们通常生活中的数学计算都是以十进制为基础的, 任何一个数字都可以用个(1), 十(10), 百(100), 千(1000), 万(10000)…这样的数位相加而成

IP地址与二进制之间的转换_第1张图片

例如5349这个数可以用十进制表示为:

5349 =
5 * 1000 +
3 * 100 +
4 * 10 +
9 * 1

而二进制数顾名思义,就是以二进制为基础的数, 用0和1两个数来表示, 同样我们可以用二进制来表示任何一个数字

屏幕快照 2018-03-22 00.02.41

例如216这个数

216 =
1 * 128 +
1 * 64 +
0 * 32 +
1 * 16 +
1 * 8 +
0 * 4 +
0 * 2 +
0 * 1

提取乘号之前的数字我们得到所代表的二进制数: 11011000

又比如8这个数字

8 =
1 * 8 +
0 * 4 +
0 * 2 +
0 * 1

得到转换后的二进制数: 1000

转换过程

通过上面的分析, 我们可以了解到IP地址与二进制之间的转换其实就是十进制与二进制之间的转换

IP地址可以表示成这种32位二进制形式

11000000, 10101000, 00111011, 00011000

也可以是4位十进制形式:

192.168.59.24

  • 二进制转换为十进制

    IP地址与二进制之间的转换_第2张图片

​ 我们以11000000这个数为例, 根据上图,将1,0依次代入所在数位, 然后相加所在数位数字:

​1 * 128 +
1 * 64 +
0 * 32 +
0 * 16 +
0 * 8 +
0 * 4 +
0 * 2 +
0 * 1 = 192

​ 192就是11000000的十进制形式

  • 十进制转换为二进制

    参考本文二进制部分,同理, 附一张例子图片

    IP地址与二进制之间的转换_第3张图片

参考视频:https://www.youtube.com/watch...

你可能感兴趣的:(计算机网络)