IP地址格式 & 二进制转换

IP地址格式 & 二进制转换

  • IP地址是用于在计算机网络中标识和定位设备的一组数字。它由32位二进制(4个8位字节)组成,通常用点分十进制表示法表示。每个字节可以表示0到255之间的值。

  • IP地址的标准格式是 xxx.xxx.xxx.xxx,其中每个 xxx 表示一个字节的十进制值。例如,192.168.0.1 是一个常见的私有IP地址。

  • 子网掩码用于确定一个IP地址中哪些位用于网络标识,哪些位用于主机标识。子网掩码也由四个8位字节组成,通常用点分十进制表示法表示。

  • CIDR(Classless Inter-Domain Routing)表示法是一种更简洁的IP地址表示法,用于表示网络的前缀长度。CIDR表示法将IP地址和子网掩码用斜杠分隔开,例如 192.168.0.0/24 表示前24位用于网络标识。

  • 将每个十进制数转换为8位二进制数的方法是将该数不断除以2,直到商为0。然后将每个步骤的余数从最后一个步骤开始反向排列,得到对应的8位二进制数。

以十进制数 192 为例,将其转换为二进制数:

1
2
3
4
5
6
7
8
192 ÷ 2 = 96 余 0
96 ÷ 2 = 48 余 0
48 ÷ 2 = 24 余 0
24 ÷ 2 = 12 余 0
12 ÷ 2 = 6 余 0
6 ÷ 2 = 3 余 0
3 ÷ 2 = 1 余 1
1 ÷ 2 = 0 余 1

将每个步骤的余数从最后一个步骤开始反向排列,得到二进制数 11000000

  • 将一个32位的二进制数分成四组,每组8位。将每个8位二进制数转换为对应的十进制数,得到IP地址的四个十进制数。
  • 从右往左开始,第一位的值与$2^0$相乘、第二位的值与$2^1$相乘……以此类推,最后把值全部加起来。

以二进制数 11000000 为例,将其转换为十进制数:

$$ 11000000 -> 0×2^0+0×2^1+0×2^2+0×2^3+0×2^4+0×2^5+1×2^6+1×2^7=192 $$ 得到IP地址的第一个十进制数 192

输入IP地址:192.168.0.1

将每个十进制数转换为8位二进制数:

1
2
3
4
192 -> 11000000
168 -> 10101000
0   -> 00000000
1   -> 00000001

合并四个8位二进制数得到32位二进制数:11000000.10101000.00000000.00000001

输入32位二进制数:11000000.10101000.00000000.00000001

将32位二进制数分成四组:

1
2
3
4
11000000 -> 192
10101000 -> 168
00000000 -> 0
00000001 -> 1

得到IP地址:192.168.0.1