当我们在计算机上输入单词时,它会将它们翻译成数字。事实上,对于计算机来说,所有的信息都是以一串 1 和 0 的形式写入的。计算机数字系统是我们在计算机系统体系结构中表示数字的方式。
数字系统是计算机科学家必须学习的最基本的概念之一。对于任何想成为计算机科学家或程序员的人来说,这都是重要的一步。
今天,我们将向您介绍计算机科学家必不可少的数字系统。我们将深入探讨二进制和十六进制数字系统。
(资料图)
什么是计算机科学中的数字系统?人类已经计算了很长时间。为此,我们使用将唯一符号与特定值相关联的系统。这称为数字系统,它是我们用来表示和操作数字的技术
数字系统的每个值都必须具有唯一的符号,必须保持一致,提供可比较的值,并且易于重现。
您可能最熟悉构成人类计数基础的十进制系统。十进制以 10 为底,因为它提供 10 个符号来表示所有数字:
人类使用十进制是因为我们有 10 个手指可以指望,但机器没有那么多。因此,我们创建了执行相同功能的其他数字系统。计算机代表信息的方式与人类不同,因此我们需要不同的系统来代表数字。
计算机支持以下数字系统:
二进制八进制十进制十六进制二进制数系统简介计算机使用位来表示信息。位是计算机中最基本的存储单位。计算机的一个重要组成部分称为晶体管。就像电灯开关一样,晶体管允许或阻止电流流动。所以,它只有两种状态:on和off。
计算机中的每个数字都是电信号。在计算机的早期,电信号用“开”状态(负电荷)和“关”状态(正电荷)表示。这形成了一种二进制开关。
这两个状态可以使用两个符号之一表示:1和0。这意味着二进制数字系统的基数是 2。只需要符号来表示每个数字。
二进制系统的基本数字很简单:0 代表低状态,1 代表高状态。
我们不是将数字表示为单独的单位(如数字 10 或 400),而是使用 1 和 0 的组。例如,这是计算机从 0 数到 10 时的样子:
这称为二进制数字系统。每个二进制数字称为一个位。例如,0110由 4 位组成,分别是0、1、1和0。当谈到为这个系统中的位(即数字)赋值时,我们从右到左放置与 2 的升幂相对应的值。
最右边的位称为最低有效位 (LSB),最左边的位称为最高有效位 (MSB)。
您可以使用按位运算符左右操作位,以在机器代码级别有效地更改数字的值。
十进制和二进制之间的转换现在我们了解了二进制系统的基础知识,让我们学习如何在十进制和二进制之间进行转换。我们从二进制到十进制的转换开始。
我们知道二进制系统具有 2 的幂位值。这些值是这些位置上数字(0 或 1)的权重。它是这样工作的:
我们将每个数字乘以它的权重(它的位置乘以 2)我们将它们全部加起来得到十进制数所以,让我们把二进制数 11111010 转换成十进制数。
--->
现在让我们反过来试试。我们如何将十进制数转换为二进制数?一种方法是重复除法,这是一个方便的捷径。
因此,以数字 19 为例。我们先将其除以二,然后记下余数。当我们将 19 除以 2 时,我们得到 9,余数为 1。
然后我们将 9 除以 2,结果为 4,余数为 1。这个过程一直持续到我们达到零。我们收集的余数构成了我们的二进制数!
十六进制数系统简介反复除以 2 并记录余数是将十进制转换为二进制的捷径!
现在我们已经了解了一些关于二进制系统的知识,让我们了解计算机使用的另一种常用系统:十六进制数系统。
二进制数对计算机来说很容易,但对人类来说却不是那么容易理解。当您处理大量数据时,要准确无误地编写代码会变得很困难。所以,为了解决这个问题,我们可以将二进制数分成四位一组,形成十六进制数系统。
十六进制系统是一种在计算机上表示数字的更紧凑的方式,因为它只需要 4 位来表示一个数字的值。
十六进制(通常称为“十六进制”)由16 个符号组成,因此它的基数为 16。十六进制使用十进制的 10 个数字和六个额外的符号,A、B、C、D、E 和F。
十六进制的位值是 16 的幂。让我们看看十六进制数 XYZ 的十进制数是多少。正如您在下面看到的,十六进制数前面有一个#,表示它们是 base-16。
如何在二进制和十六进制之间转换现在我们了解了二进制和十六进制数系统,让我们学习如何在二进制数和十六进制数之间进行转换。我们从二进制到十六进制开始。
我们将把二进制数字分成四组(从右边开始)。然后,我们用相应的十六进制表示替换每个四重奏。
--->
--->
现在十六进制转二进制!让我们来看一个例子。下面,我们通过将其替换为等效的二进制四位来扩展每个十六进制数字。
--->
--->
什么是八进制数系统?八进制数系统不像二进制的十六进制那样被广泛使用。它是在与十六进制系统相同的思想下开发的:使二进制更紧凑。
八进制系统将二进制数分组为三元组而不是四元组。因此,八进制系统是base-8,如2^3 = 8。
我们使用八进制系统的八个基本符号,这些符号是从十进制系统借来的。二进制三元组的值范围为0-7。
因此,位值将从右到左以8的幂递增。
要将二进制转换为八进制,我们遵循以下基本技术:
将二进制数分成三组(类似于我们对十六进制所做的)通过添加零使每组数字成为三的倍数在每组下方写上相应的八进制符号你现在将有一个八进制数将八进制转换为二进制是类似的,但更简单一些:
写出每个八进制数字的二进制表示将这些数字连接在一起你不会有二进制数接下来要学什么恭喜!您现在已经对计算机科学的数字系统有了扎实的介绍。您已经迈出了进入计算机编程领域的第一步。然而,仍有许多东西需要学习。您的下一步是学习:
如何创建自己的数字系统二元运算有符号二进制数定点符号位和字节的基础知识ASCII码统一码计算机内存基础一旦您涵盖了这些主题,您就可以很好地理解计算机了!要开始了解这些概念并更详细地探索二进制、十六进制和八进制,请查看 Educative 的计算机科学家课程数字系统,其中涵盖了所有这些内容以及更多内容。
您将了解基本的数字系统,并学习如何用二进制表示和操作正数、负数和小数。不需要编程知识,所以今天就开始吧,开始你作为计算机科学家的职业生涯。
快乐学习!
标签: