前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >软硬件融合技术内幕 终极篇 (4) —— 人类历史的丰碑

软硬件融合技术内幕 终极篇 (4) —— 人类历史的丰碑

作者头像
用户8289326
发布2022-12-13 09:32:14
3940
发布2022-12-13 09:32:14
举报

在上一期,我们一期探讨了计算机如何计算四则运算中最简单的加法。那么,我们如何来计算加法的逆运算——减法呢?

让我们先从小学生常见的问题来回溯到17世纪的欧洲。

几乎所有的小学生都会问老师一个问题:一个较小的自然数,减去一个较大的自然数的结果是什么呢?

在初中数学中,答案很简单:负数。

而两个自然数的加法,依然是自然数。减法的出现,就将自然数的领域扩大到了包含自然数、0和负数的领域,也就是整数域。类似地,除法、开方和对数运算会将数的领域扩大到有理数、代数数(不严谨的称呼为无理数)和超越数。

最有名的超越数是e(自然对数的底)和π (圆周率)。而这两个数和0,1,i(虚数单位)这三个最基本的数,又构成了一个优雅的等式……这个下期再告诉大家,看看大家会不会

让我们回到今天的主题——计算机如何计算减法。

实际上,在人类看来,减法可以转换为加法,只要把被减数换成对应的负数(术语曰:相反数)。

如:2022-1926=96,可以转换为2022+(-1926) = 96。

那么,我们只需要在计算机中,用合理的方式表示负数,就可以实现减法了!

话分两头。

我们知道,计算机使用二进制来表示数字。那么,由于受到二进制位数的限制,计算机可以表示的数字也是有上限的。如8051单片机是8bit的,其加法器单条指令能计算的上限就是8个二进制数,也就是从00000000b到11111111,相当于十进制的0到255。

那么,当255+1的时候会发生什么呢?

让我们从人类视角和从计算机视角分别看。

从人类视角看,这是很简单的一个问题:

255+1 = 256

而从计算机视角看,算式是这样的:

具体到加法器的输入和输出则是这样的:

我们发现,在上图呈现的计算机加法器中,由于只能计算8bit数,产生了255+1=0这样的结果!

我们知道,减法是加法的逆运算。也就是说,既然在8位计算机的视角看来,255+1=0,我们就可以把255视为-1。在8bit整数运算的场景下,在需要减去1的情况下,把255作为加法器的另一输入,就可以实现减法:

以此类推,我们可以认为,11111110代表-2,11111101代表-3……

这种方式叫做二进制补码表示法。其规律是,想得到一个整数的相反数,就将其按位取反再加1,并通过最高bit来作为标志位,判断是正数还是负数。以8bit整数为例:

00000000到01111111,也就是表示正数的0-127;

10000000到11111111,也就是表示负数的-128到-1;

以最高有效位(MSB,Most Significant Bit)为正负标志位,MSB为0的时候为正数,MSB为1的时候为负数。

可以类推之16位:

00000000 00000000到01111111 11111111,表示正数的0到32767;

10000000 00000000到1111111111111111,表示负数的-32768到-1;

32位、64位整数的范围也可以以此类推。

在计算机设计中,更困难的问题是如何解决乘法问题。

二年级以上的小朋友们都理解,乘法的计算显著比加法要复杂,其运算也更慢。对于计算机而言也是如此。特别地,对多位数的乘法需要列竖式进行:

类似地,在计算机中也需要通过类似“列竖式”的方法来解决乘法问题。

在下一期,我们会详解计算机乘法的实现。

本期的内容实际上涉及到一个名词:伽罗华域。伽罗华域是现代计算机技术的理论基础之一,以欧洲19世纪天才数学家伽罗华的名字命名。伽罗华在推翻波旁王朝的第二次法国大革命(又称七月革命)中支持三色共和党,反对帝制,被非法关押后,又被敌对势力诱导参加决斗,身受重伤而死,时年21岁。然而,只要人类文明还存在,伽罗华的名字和他开创的“群论”,就会永远流传下去。

可见,一个人无论是依靠自己的奋斗,还是同时考虑到历史的进程,只要为人类的进步做出过微小的贡献,无论人生的长度是21年还是96年,都将会永垂史册,铭刻在人类进步历史的丰碑。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-12-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 帅云霓的技术小屋 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档