计算机为什么采用二进制(二进制)
一个二进制值可以用来表示一个数字。我们可以将这两种状态称为“1”和“0”,而不是“真”和“假”,这实际上非常有用。如果我们想表示更大的东西,我们只需要添加更多的二进制数字。这与我们都熟悉的十进制数的工作方式完全相同。对于十进制数,单个数字只有十个可能的值:0 到 9。要获得大于 9 的数字,我们只需开始在前面添加更多数字。
我们可以用二进制做同样的事情。例如,让我们以数字 263 为例,这个数字实际上代表什么?嗯,这意味着我们有两个 100、六个 10 和三个 1。如果将所有这些加在一起,我们得到了 263。注意每一列有不同的乘数;在这种情况下,它是 100、10 和 1。每个乘数都比右边的大 10 倍。这是因为每列都有 10 个可能的数字,从 0 到 9,之后您必须将一个数字带到下一列。出于这个原因,它被称为基数 10 表示法,也称为十进制,因为“deci-”表示 10。
二进制的工作方式完全相同,它只是以 2 为基数。那是因为二进制中只有两个可能的数字,1 和 0。这意味着每个乘数必须比其右边的列大两倍。我们现在有 4s、2s 和 1s,而不是 100s、10s 和 1s。以二进制数 101 为例。这意味着我们有一个 4、零个 2 和一个 1。将所有这些加在一起,我们得到了以 10 为基数的数字 5。
但是为了表示更大的数字,二进制需要更多的数字。取这个二进制数:10110111。我们可以用同样的方法把它转换成十进制。我们有 1*128 0*64 1*32 1*16 0*8 1*4 1*2 1*1 = 183。
(2)加法运算、表示范围二进制数的数学也不难。
以 183 19 的十进制加法为例。首先我们加上 3 9 = 12,所以我们将 2 作为总和并将 1 进位到 10s 列。现在我们加上 8 1 1(进位)= 10,所以总和是 0 携带 1。最后我们加上 1 1(进位)= 2,所以总和是 202。
二进制,我们从 1s 列开始。添加 1 1 = 2 但没有符号 2,所以我们使用 10 并将 0 作为我们的总和并进位 1,就像在我们的十进制示例中一样。 1 1 1(进位)= 3,或二进制的 11,所以我们把总和设为 1 并再次进位 1,以此类推。我们最终得到这个数字 11001010,它与基数 10 中的数字 202 相同。
【扩充】:如下的全加器,完成1位二进制的加法,注意输入有进位,输出也有进位,这些级联起来,就可以完成8位的加法
这些二进制数字 1 或 0 中的每一个都称为位。所以在最后几个例子中,我们使用了 8 位数字,它们的最低值为 0,最高值为 255,这要求所有 8 位都设置为 1。这是 256 个不同的值,或 2^8。您可能听说过 8 位计算机或 8 位图形或音频。这些计算机的大部分操作都是以 8 位块为单位进行的,但是 256 个不同的值并不能处理太多,因此这意味着 8 位游戏之类的东西仅限于 256 种不同颜色的图形。
8 位在计算中是如此常见的大小,它有一个特殊的词:“字节”。一个字节是 8 位。如果你有 10字节,这意味着你真的有 80bit。您听说过千字节、兆字节、千兆字节等。这些前缀表示不同规模的数据。就像一公斤是 1000 克一样,一千字节是 1000 字节,或者实际上是 8000 位。 Mega 是一百万字节,giga 是十亿字节。今天,您甚至可能拥有一个存储容量为 1 TB 的硬盘。那是八万亿个 1 和 0。
但是等等,这并不总是正确的。在二进制中,千字节有 2^10 个字节,或 1024。在谈论千字节时,1000 也是正确的,但我们应该承认它不是唯一正确的定义。您可能还听说过 32 位或 64 位计算机这个词。您现在几乎可以肯定正在使用一个。这意味着它们以 32 位或 64 位的块运行。这是很多位!
您可以用 32 位表示的最大数字略低于 43 亿,即二进制中的 32 个 1。这就是为什么我们的 Instagram 照片如此流畅漂亮的原因;它们由数百万种颜色组成,因为今天的计算机使用 32 位图形。
(3)二级制表示负数当然,并不是所有的东西都是正数,比如我在大学的银行账户,所以我们需要一种表示正数和负数的方法。大多数计算机使用第一位作为符号,1 代表负数,0 代表正数,然后使用剩余的 31 位作为数字本身。这给了我们大约正负 20 亿的范围。虽然这是一个相当大的数字范围,但对于许多任务来说还不够。地球上有七十亿人口,美国的国债毕竟将近二十万亿美元。这就是 64 位数字有用的原因。 64 位数字可以表示的最大值约为 9.2 千亿。这是很多可能的数字,有望在一段时间内保持在美国国债之上。
【扩充】:用第一位作为符号,是原码形式表示。
但是更重要的是补码形式表示。
正数的补码形式:和原码形式相同,例如7,表示为 0000’0111;
负数的补码形式:先将负数变为正数,将正数表达为原码形式,然后全部取反 1;
(这个动作是补码运算)
-7=>7=>0000'0111=>1111'1000=>1111'1001。
数字在计算机中,全部是以补码形式存储。
补码的作用,使得加法和减法统一。
假设两个数字,(3,5),存放在内存中,注意:为补码形式存放。
如果是3 5,直接进入加法器,0000' 0011 0000'0101=0000'1000,得到8的补码;
如果是3-5,将5进行补码运算(取反加1)0000'0101=>1111'1010=>1111'1011
然后进入加法器,0000' 0011 1111'1011= 1111'1110,得到-2的补码;
也就是说加法器电路可以用于加法和减法,而且输出可以直接放入内存,只不过减法的时候,对减数首先进行补码运算。
(4)二进制表示内存地址最重要的是,正如我们将在后面的情节中讨论的那样,计算机必须在其内存中标记称为“地址”的位置,以便存储和检索值。随着计算机内存增长到 GB 和 TB 级(即数万亿字节),也必须拥有 64 位内存地址。
【扩充】内存地址,直接采用原码表示,范围0---2^n-1 n=地址线条数,例如64
(5)二进制表示小数除了负数和正数之外,计算机还必须处理非整数的数字,例如 12.7 和 3.14,甚至可能是 Stardate 43989.1。这些被称为浮点数,因为小数点可以在数字中间浮动。已经开发了几种表示浮点数的方法,其中最常见的是 IEEE 754 标准。你认为历史学家是唯一不擅长命名事物的人!本质上,这个标准存储十进制值有点像科学记数法。例如,625.9 可以写成 0.6259 * 10^3。这里有两个重要的数字。 .6259 被称为有效数,3 是指数。
在 32 位浮点数中,第一位用于表示数字的正负号。接下来的 8 位用于存储指数,其余 23 位用于存储有效数。
1.0001的第一个1不参加编码:小数点移动的时候,必须要保证小数点前面是1,因此第一个1就不用参加编码了。指数3 127进行二进制编码,也就是说指数的表达范围【-127,128】
(6)二进制表示字符好的,我们已经讨论了很多关于数字的内容,但是您的名字可能是由字母组成的,因此对于计算机来说,也有一种表示文本的方法非常有用。然而,计算机并没有使用特殊的字母存储形式,而是简单地使用数字来表示字母。最直接的方法可能是简单地给字母表中的字母编号,A 是 1,B 是 2,C 是 3,依此类推。事实上,著名的英国作家弗朗西斯·培根 (Francis Bacon) 在 1600 年代使用 5 位序列对英文字母表的所有 26 个字母进行编码,以发送秘密信息。
5 位可以存储 32 个可能的值,所以这对于 26 个可能的字母来说已经足够了,但对于标点符号、数字和大小写字母来说还不够。输入 ASCII,美国信息交换标准代码。 ASCII 于 1963 年发明,是一种 7 位代码,足以存储 128 个不同的值。有了这个扩展的范围,它可以对大写字母、小写字母、数字 0 到 9 以及 @ 符号和标点符号等符号进行编码。例如,小写的 A 由数字 97 表示,而大写的 A 是 65,冒号是 58,右括号是 41。 ASCII 甚至还有一些特殊的命令代码,例如换行符来告诉计算机在哪里换行到下一行。在较旧的计算机中,如果您不包含换行符,则文本行实际上会超出屏幕边缘。
因为 ASCII 是一个如此早期的标准,所以它被广泛使用,并允许不同公司制造的不同计算机交换数据。这种普遍交换信息的能力称为互操作性。然而,它确实有一个主要的限制:它实际上只是为英语设计的。
幸运的是,字节注 7 中有 8 位,并且很快流行使用以前未使用的代码 128-255 来表示国家字符。在美国,这些额外的数字主要用于编码额外的符号,如数学符号、图形元素和常见的重音字符。另一方面,虽然拉丁字符被普遍使用,但俄罗斯计算机使用额外的代码来编码西里尔字符,希腊计算机使用希腊字母等。并且国家字符代码在大多数国家/地区都运行良好。
问题是,如果你在土耳其电脑上打开一封用拉脱维亚语写的电子邮件,结果是完全无法理解的,而且随着亚洲计算的兴起,事情完全崩溃了,因为中文和日语等语言有数千个字符。没有办法用 8 位编码所有这些字符。
作为回应,每个国家都发明了多字节编码方案,所有这些方案都是互不兼容的。日本人对这个编码问题非常熟悉,甚至给它起了一个特殊的名字,mojibake,意思是“乱码”。
就这样它诞生了:Unicode,一种统治它们的格式。于 1992 年设计,最终废除了所有不同的国际方案,取而代之的是一种通用编码方案。最常见的 Unicode 版本使用 16 位,其中有超过一百万个代码的空间,足以容纳曾经使用过的每种语言的每个字符——超过 120,000 个在 100 多种类型的脚本中,加上数学符号甚至图形字符的空间,例如表情符号。
(7)二进制表示其它内容与 ASCII 定义将字母编码为二进制数字的方案相同,MP3 或 GIF 等其他文件格式使用二进制数字对照片、电影和音乐中的像素的声音或颜色进行编码。最重要的是,在幕后,这一切都归结为长序列的位。短信、这个 YouTube 视频、互联网上的每个网页,甚至您计算机的操作系统都只是一长串 1 和 0。
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com