LFCA:在网络中学习二进制和十进制数字 – 第10部分

第9部分LFCA系列中,我们介绍了IP地址的基础知识。为了更好地理解IP地址,我们需要更加关注这两种类型的IP地址表示方式——二进制点分十进制。如前所述,IP地址是一个32位的二进制数,通常以十进制格式表示以便于阅读。

二进制格式仅使用数字10。这是您的计算机理解的格式,也是通过网络发送数据的方式。

然而,为了使地址易于人类阅读。它以点分十进制格式传达,计算机随后将其转换为二进制格式。正如我们之前所述,一个IP地址由4个八位字节组成。让我们解析IP地址192.168.1.5

点分十进制格式中,192是第一个八位字节,168是第二个八位字节,1是第三个,最后,5是第四个八位字节。

以二进制格式表示的IP地址如下:

11000000		=>    1st Octet

10101000		=>    2nd Octet

00000001		=>    3rd Octet

00000101		=>    4th Octet

二进制中,一个位可以是开或关的。‘’位由1表示,而关闭位由0表示。以十进制格式,

要得到十进制数,需要对所有二进制位的2次幂进行求和。下表给出了八位字节中每个位的位置值。例如,1的十进制值等同于二进制00000001

Decimal Numbers

更好的格式可以表示如下。

2º	=	1	=	00000001

2¹	=	2	=	00000010

2²	=	4	=	00000100

2³	=	8	=	00001000

2⁴	=	16	=	00010000

2⁵	=	32	=	00100000

2⁶	=	64	=	01000000

2⁷	=	128	=	10000000

让我们尝试将点分十进制格式的IP地址转换为二进制。

将十进制格式转换为二进制

让我们以192.168.1.5为例。要从十进制转换为二进制,我们将从左到右开始。对于表中的每个值,我们问一个问题,您能从IP地址中的十进制值中减去表中的值吗?如果答案是“YES”,我们写下“1”。如果答案是“NO”,我们写下零。

让我们从第一个八位字节开始,即192。您能从128中减去192吗?答案是肯定的“YES”。因此,我们将写下对应于128的1。

Decimal Numbers
192-128 = 64

您能从64中减去64吗?答案是“YES”。同样,我们写下对应于64的1。

Decimal Numbers

64-64 = 0由于我们已经用尽了十进制值,我们将剩余的值分配为0。

Decimal Numbers

所以,192的十进制值转换为二进制为11000000。如果您将底部表中对应1的值相加,最终得到192。即128 + 64 = 192。有道理吧?

让我们继续到第二个八位字节 – 168。我们可以从168中减去128吗?是的

Decimal Numbers
168-128 = 40

接下来,我们可以从40中减去64吗?不行。所以,我们分配一个0。

Decimal Numbers

我们继续到下一个值。我们可以从40中减去32吗?是的。我们分配值1。

Decimal Numbers
40 - 32 = 8

接下来,我们可以从8中减去18吗?不行。我们分配0。

Decimal Numbers

接下来,我们可以从8中减去8吗?是的。我们分配值1。

Decimal Numbers
8-8 = 0

由于我们已经用尽了十进制值,所以将在表中剩余的值分配为0,如下所示。

Decimal Numbers

最终,十进制168转换为二进制格式10101000。同样,如果您将底部行中对应1的十进制值相加,最终得到168。即128 + 32+8 = 168

对于第三个八位字节,我们有1。我们可以完全从表中减去的唯一数字是1。因此,我们将在表上为1分配值1,并添加前导零,如下所示。

Decimal Numbers

因此,1的十进制值等于二进制00000001

最后,我们有5。从表中,我们可以完全从5中减去的数字从4开始。左侧的所有值将被分配为0。

我们可以从5中减去4吗?是的。我们将4分配为1。

Decimal Numbers
5-4 = 1

接下来,我们可以从2中减去1吗?不行。我们分配值0。

Decimal Numbers

最后,我们能够从1中减去1吗?是的。我们将1赋值。

Decimal Numbers

数字5的十进制数字对应于二进制00000101

最后,我们有以下转换。

192	=>	 11000000

168 	=>	 10101000

1       =>	  00000001

5       =>	  00000101

因此,192.168.1.5 转换为二进制形式为11000000.10101000.00000001.00000101

理解子网掩码/网络掩码

我们先前已经说明,TCP/IP 网络中的每个主机都应该有一个唯一的 IP 地址,这在大多数情况下是由路由器使用 DHCP 协议动态分配的。DHCP 协议(动态主机配置协议)是一个为 IP 网络中的主机动态分配 IP 地址的服务。

但是,您如何确定 IP 的哪一部分保留用于网络部分,哪一部分可供主机系统使用?这就是子网掩码或网络掩码发挥作用的地方。

A subnet is an additional component to an IP address that distinguishes the network & host portion of your network. Just like an IP address, the subnet is a 32-bit address and can be written in either decimal or binary notation.

子网的目的是在 IP 地址的网络部分和主机部分之间划定边界。对于 IP 地址的每个位,子网掩码或网络掩码分配一个值。

对于网络部分,它打开该位并分配值1,对于主机部分,它关闭该位并分配值0。因此,所有位设置为1对应于 IP 地址中代表网络部分的位,而所有位设置为0对应于 IP 地址中代表主机地址的位。

A commonly used subnet mask is the Class C subnet which is 255.255.255.0.

下表显示了十进制和二进制中的网络掩码。

Network Masks

这是我们网络基础知识系列的第二部分。我们已经讨论了十进制到二进制IP转换、子网掩码以及每个IP地址类别的默认子网掩码。

Source:
https://www.tecmint.com/learn-binary-and-decimal-numbers-in-networking/