数制系统——进制转换

目录

[1 二进制数制系统](#1 二进制数制系统)

[1.1 二进制和 IPv4 地址](#1.1 二进制和 IPv4 地址)

[1.2 二进制位置记法](#1.2 二进制位置记法)

[1.3 将二进制数转换为十进制数](#1.3 将二进制数转换为十进制数)

[1.4 十进制到二进制的转换](#1.4 十进制到二进制的转换)

[1.4.1 二进制和十进制互相转换游戏链接](#1.4.1 二进制和十进制互相转换游戏链接)

[1.5 Pv4 地址](#1.5 Pv4 地址)

[2 十六进制数制系统](#2 十六进制数制系统)

[2.1 十六进制和 IPv6 地址](#2.1 十六进制和 IPv6 地址)

[2.2 十进制到十六进制的转换](#2.2 十进制到十六进制的转换)

[2.3 十六进制到十进制的转换](#2.3 十六进制到十进制的转换)


前言:

这是一个网络中计算机的 32 位 IPv4 地址:11000000.10101000.00001010.00001010。它以二进制显示。这是以点分十进制显示的同一台计算机的 IPv4 地址:192.168.10.10。您想和哪一个一起工作? 而IPv6 地址是 128 位!为了使这些地址更易于管理,IPv6 使用 0-9 和字母 A-F组成的十六进制系统。

作为网络管理员,您必须知道如何将二进制地址转换为点分十进制地址,以及将点分十进制地址转换为二进制地址。您还需要知道如何将点分十进制转换为十六进制,反之亦然。(提示:您仍然需要您的二进制转换技能来实现这一点。)

1 二进制数制系统

1.1 二进制和 IPv4 地址

IPv4地址以二进制开头,仅包含1和0。这很难管理,因此网络管理员必须将它们转换为十进制。本主题向您展示了几种实现它的方法。

二进制是指包含数字 0 和 1 位的数制系统。相比之下,十进制数制系统是由数字 0 - 9 共 10 位数字组成。

理解二进制对于我们很重要,因为主机、服务器和网络设备使用二进制编址。具体地说,它们使用二进制 IPv4 地址,如图所示,以识别彼此。

每一个地址包含一串 32 位字符串,并分为四个部分,称为二进制八位组。每一个二进制八位组包含 8 位(或 1 个字节),用句点分隔。例如,为图中的 PC1 分配的 IPv4 地址为 11000000.10101000.00001010.00001010。其默认网关地址将为 R1 千兆以太网接口地址 11000000.10101000.00001010.00000001。

二进制可以与主机和网络设备很好地协同工作。然而,这对人类来说是非常具有挑战性的。

为了方便人们使用,IPv4 地址通常表达为点分十进制记法。为 PC1 分配的 IPv4 地址为 192.168.10.10,其默认网关地址为 192.168.10.1,如图所示。

为了扎实理解网络编址,必须了解二进制编址,并且掌握在 IPv4 地址的二进制和点分十进制之间转换的技能。此部分介绍如何在以 2(二进制) 为基数的数制系统和 10 (十进制)为基数的数制系统之间进行转换。

1.2 二进制位置记法

要学习将二进制转换为十进制,需要先了解位置记数法。位置记数法即根据数字在数字序列中所占用的位置,表示不同的值。您已经了解最常见的数制系统,即十进制(以 10 为基数)计数法系统。

十进制位置记数法系统按照表中所示进行运算。

基数 10 10 10 10
位置号 3 2 1 0
计算 (10^3) (10^2) (10^1) (10^0)
位置值 1000 100 10 1
[ ]

以下项目符号描述了表中的每一行。

  • 第 1 行,基数是可使用数字符号的数目。十进制记法基于 10,因此基数为 10。
  • 第 2 行,位置号考虑十进制数字的起始位置,从右到左依次为 0(第 1 位置)、1(第 2 位置)、2(第 3 位置)、3(第 4 位置)。这些数字还表示用于计算位置值的指数值(第 4 行)。
  • 第3行通过将基数乘以其在第2行中的位置的指数值来计算位置值。
    注意: n^0 = 1。
  • 第 4 行位置值表示千位、百位、十位和个位。

要使用位置系统,所给数字必须与其位置值相匹配。表中的示例描述了位置记数法与十进制数字 1234 的使用。

千位 百位 十位 个位
位置值 1000 100 10 1
十进制数 (1234) 1 2 3 4
计算 1 x 1000 2 x 100 3 x 10 4 x 1
把它们加起来 1000 + 200 + 30 + 4
结果 1,234
[ ]

相比之下,二进制位置记数法的运算如表所示。

基数 2 2 2 2 2 2 2 2
位置号 7 6 5 4 3 2 1 0
计算 (2^7) (2^6) (2^5) (2^4) (2^3) (2^2) (2^1) (2^0)
位置值 128 64 32 16 8 4 2 1
[ ]

以下项目符号描述了表中的每一行。

  • 第 1 行,基数是可使用数字符号的数目。二进制记数法基于 2,因此基为 2。
  • 第 2 行,位置号考虑二进制数字的起始位置,从右到左依次为 0(第 1 位置)、1(第 2 位置)、2(第 3 位置)、3(第 4 位置)。这些数字还表示用于计算位置值的指数值(第 4 行)。
  • 第3行通过将基数乘以其在第2行中的位置的指数值来计算位置值。
    注意: n0 = 1。
  • 第 4 行位置值表示一位,二位,四位,八位等。

表中的示例举例说明了二进制数字 11000000 如何与数字 192 对应。如果二进制数字为 10101000,则其对应的十进制数字为 168。

位置值 128 64 32 16 8 4 2 1
二进制数 (11000000) 1 1 0 0 0 0 0 0
计算 1 x 128 1 x 64 0 x 32 0 x 16 0 x 8 0 x 4 0 x 2 0 x 1
把它们加起来.. 128 + 64 + 0 + 0 + 0 + 0 + 0 + 0
结果 192
[ ]

1.3 将二进制数转换为十进制数

要将二进制 IPv4 地址转换为其点分十进制等值,将 IPv4 地址分为四个 8 位二进制八位组。下一步,将二进制位置值应用于第一个二进制八位组二进制数字并进行相应计算。

例如,将 11000000.10101000.00001011.00001010 作为主机的二进制 IPv4 地址。要将这个二进制地址转换为十进制,先转换第一个二进制八位数,如表所示。在第 1 行的位置值下输入 8 位二进制数字,然后计算出十进制数字 192。192 为点分十进制记法的第一个二进制八位组。

位置值 128 64 32 16 8 4 2 1
二进制数 (11000000) 1 1 0 0 0 0 0 0
计算 128 64 32 16 8 4 2 1
把它们加起来... 128 + 64 + 0 + 0 + 0 + 0 + 0 + 0
结果 192
[ ]

接下来转换 10101000 的第二个八位组,如表中所示。结果十进制值为 168,它属于第二个二进制八位组。

位置值 128 64 32 16 8 4 2 1
二进制数 (10101000) 1 0 1 0 1 0 0 0
计算 128 64 32 16 8 4 2 1
把它们加起来... 128 + 0 + 32 + 0 + 8 + 0 + 0 + 0
结果 168

转换 00001011 的第三个八位组,如表中所示。

位置值 128 64 32 16 8 4 2 1
二进制数 (00001011) 0 0 0 0 1 0 1 1
计算 128 64 32 16 8 4 2 1
对它们求和... 0 + 0 + 0 + 0 + 8 + 0 + 2 + 1
结果 11
[ ]

转换 00001010 的第四个八位组,如表中所示。这样就完成了 IP 地址并生成 192.168.11.10

位置值 128 64 32 16 8 4 2 1
二进制数 (00001010) 0 0 0 0 1 0 1 0
计算 128 64 32 16 8 4 2 1
对它们求和... 0 + 0 + 0 + 0 + 8 + 0 + 2 + 0
结果 10
[ ]

1.4 十进制到二进制的转换

了解点分十进制 IPv4 地址到二进制的转换同样很有必要。二进制位置值表就是一个很有用的工具。为了帮您了解这个过程,设想 IP 地址为 192.168.11.10。

使用先前说明的位置记法过程将第一个八位组数字192转换为二进制。

对于较简单或较小的十进制数字可以忽略减法步骤。例如,请注意,计算第三个八位组转换为二进制数是相当容易的,无需实际执行减法过程(8 + 2 = 10)。第三个二进制八位组的二进制值为 00001010。

第四个二进制八位组为 11 (8 + 2 + 1)。第四个二进制八位组的二进制值为 00001011。

二进制和十进制之间的转换最初可能比较难,但通过练习它会变得越来越容易。

1.4.1 二进制和十进制互相转换游戏链接

Cisco Learning Network

这个游戏大家可以试玩一下,能够很好的提高自己对二进制和十进制相互转化的能力

1.5 Pv4 地址

正如本主题开头提到的那样,路由器和计算机只能理解二进制,而人类则使用十进制。深入了解这两个数制系统以及它们在网络中的使用方式是非常重要的。

192.168.10.10 是分配给计算机的 IP 地址。该地址由四个不同的二进制八位数组成。计算机将该地址保存为整个 32 位数据流。

2 十六进制数制系统

2.1 十六进制和 IPv6 地址

现在您已经知道了如何将二进制转换为十进制以及将十进制转换为二进制。您需要该技能来了解网络中的 IPv4 编址。但是,您在网络中使用IPv6地址的可能性也很高。要了解 IPv6 地址,您必须能够将十六进制转换为十进制,反之亦然。

就像十进制是以 10 为基数的数制系统一样,十六进制是以 16 为基数的数制系统。以 16 为基数的数制系统使用数字 0 到 9 和字母 A 到 F。该图显示了 0000 到 1111 这些二进制数的十进制和十六进制值。

二进制和十六进制可以很好地协同工作,因为将一个值表示为一个十六进制数字比表示为四个二进制位要容易。

十六进制数制系统在网络中用于表示以太网 MAC 地址和 IP V6 地址。

IPv6地址长度为128位 ,每 4 位以一个十六进制数字表示,共 32 个十六进制值。IPv6 地址不区分大小写,可用大写或小写书写。

如图所示,书写 IPv6 地址的首选格式为 x:x:x:x:x:x:x:x,每个"x"均包括四个十六进制值。在指 IPv4 地址的 8 位时,我们使用术语八位组。在 IPv6 中,十六进制数是指代 16 位或四个十六进制值数据段的非官方术语。每个"x"均为一个十六进制数、16 位或四个十六进制值。

2.2 十进制到十六进制的转换

将十进制数字转换为十六进制值非常简单。请按照下列步骤操作:

  1. 将十进制数字转换为 8 位二进制字符串。
  2. 从最右边的位置开始,将二进制字符串分成四位一组。
  3. 将每四个二进制数转换为其十六进制等值数。

该示例提供了将 168 转换为十六进制的步骤。

例如,168 使用三步过程转换为十六进制。

  1. 168在二进制中是10101000。
  2. 10101000分两组,每组四位二进制数字是1010和1000。
  3. 1010 是十六进制 A,1000 是十六进制 8。

回答: 168 转换成十六进制是 A8。

2.3 十六进制到十进制的转换

将十六进制数字转换为十进制值也很简单。请按照下列步骤操作:

  1. 将十六进制数字转换为 4 位二进制字符串。
  2. 从最右边的位置开始创建8位二进制分组。
  3. 将每个 8 位二进制分组转换为其等效的十进制数字。

此示例提供了将 D2 转换为十进制的步骤。

  1. D2在4 位二进制字符串中是 1101 和 0010。
  2. 1101和0010在8位分组中是11010010。
  3. 二进制中的 11010010 等效于十进制中的 210。

回答: 十六进制中的 D2 是十进制中的 210。

相关推荐
打鱼又晒网33 分钟前
linux网络套接字 | 深度解析守护进程 | 实现tcp服务守护进程化
linux·网络协议·计算机网络·tcp
m0_7482400236 分钟前
Chromium 中chrome.webRequest扩展接口定义c++
网络·c++·chrome
終不似少年遊*44 分钟前
华为云计算HCIE笔记05
网络·华为云·云计算·学习笔记·hcie·认证·hcs
蜜獾云1 小时前
docker 安装雷池WAF防火墙 守护Web服务器
linux·运维·服务器·网络·网络安全·docker·容器
小林熬夜学编程2 小时前
【Linux网络编程】第十四弹---构建功能丰富的HTTP服务器:从状态码处理到服务函数扩展
linux·运维·服务器·c语言·网络·c++·http
Hacker_Fuchen2 小时前
天融信网络架构安全实践
网络·安全·架构
上海运维Q先生2 小时前
面试题整理15----K8s常见的网络插件有哪些
运维·网络·kubernetes
ProtonBase2 小时前
如何从 0 到 1 ,打造全新一代分布式数据架构
java·网络·数据库·数据仓库·分布式·云原生·架构
fantasy_arch12 小时前
CPU性能优化-磁盘空间和解析时间
网络·性能优化
njnu@liyong13 小时前
图解HTTP-HTTP报文
网络协议·计算机网络·http