计算机中的计算

计算机中的计算

我们都知道计算机由软件和硬件组成。而真正参与运算的核心硬件是处理器,即CPU。简单来说,CPU实际上就是一堆复杂的逻辑电路组成。那什么是逻辑,什么又是电路,什么又是逻辑电路呢?

逻辑电路

逻辑一词来自于古希腊,有一门专门研究逻辑的学科称为逻辑学。在这里,我们对逻辑可以简单理解为数学上的逻辑,即表示当一定的条件成立时,某个命题的真与假。在逻辑运算中,最基本的3种运算是与、或、非。大家在高中数学中已经学过了所谓的或且非真值表,且也就是我们所谓的与运算。

逻辑电路

那电路呢?通常电子部件组成的导电回路,称为电路。而在数字电路中,只取0和1,0代表低电平,1代表高电平。数字的1和0对应了逻辑上的真与假,因此这种电路叫做逻辑电路。

大的电路也都是由小的电路模块组成,因此在CPU中需要设计很多基础的逻辑电路,例如比较器、加法器、编码器等等

比较器

比较器的输入是A、B的两个32位的二进制数,粗箭头表示多根线,细线代表一根线,每根线的电平为高或者低,代表1或0。A和B各代表32根线,每一根线代表1位。输出则有3根线,如果A>B,则第1根线呈高电平,其余两根线呈低电平,如果A=B,则第2根线呈高电平,其余两根线呈低电平,如果A<B,则第3根线呈高电平,其余两根线呈低电平

编程中的if、else语句就会用到比较器:


比较强

加法器

加法器是数字电路中最重要的模块,它是所有运算的基础。实际上加、减、乘、除四则运算都可以使用加法器实现。在数学中,减法是加法的逆运算,除法是乘法的逆运算。例如加法是a+b,则减法可写为a+(-b),乘法是a*b,则除法为a*(1/b),另外,a*b又可解释为有b个a相加,a+a+a+...,因此仅使用一个加法器就可以构建出加、减、乘、除四种运算,而这样做可以降低CPU设计的复杂度。

编码器

当我们在键盘上敲一个键时,计算机怎么知道我们敲的是哪个键呢?

实际上是因为每个键都连到一个编码器上,假如按了数字3这个键,相应的连线变成高电平,编码器就输出这个键的编码。如果有16个按键,那么输出可以用4根线表示,按键0用0000表示,按键1用0001表示……计算机只需根据编码器输出的编码就知道了我们按的是什么键,从而进行相应的处理。

解码器

有了编码器,那自然会有解码器,不然怎么知道每个编码代表什么意思呢?解码器将每个编码解析之后输出到显示屏上面显示出来。

二进制的运算:

二进制表

加法

为了简单,现在假设我们只有一个4位的加法器,则5 + 3的运算如下

将十进制数转为二进制

将各个位上的数字相加,满二进位

加法运算’

再来算一下8 + 9的结果

做加法

可以看到,由于我们只有四位,溢出的部分将被丢弃,黄色数字被丢弃,因此使用四位加法器计算8 + 9的结果是1

减法

有了加法,还需要算减法,那我们如何才能使用加法器来计算减法呢?要解决这个问题,首先要引入补数的概念。

在日常生活中,时钟的时针转一圈为12小时,假如现在时钟的时针指示到六点,想要它指向三点,我们可以按顺时针方向将它拨九格,也可以逆时针方向转三格,结果是一致的。如果我们规定顺时针方向为正,逆时针方向为负,那么-3和9的效果是等价的,这时候就可以说-3和9是以12为模的补数。

补数的一些概念:

一个正数和一个负数互为补数时,两数的绝对值之和称为模

一个负数可用它的正补数来代替,而这个正补数可以用模加上负数本身来得到

正数的补数为其自身

我们知道4位二进制最多只能表示16个数字,这就像时钟上一圈只能表示12个小时一样,因此直观的就能感知到4位二进制中互为补数的模一定是16。

有了补数的概念,就可以将一个负数转换为它的正补数,例如要计算8 - 3可以写成8 + (-3),将-3转为它的补数13,那么最后只需要计算8 + 13的值就可以计算出8 - 3的值,如果大家不信,我们就来算一算

加法运算

将8和13的二进制相加,结果为10101,因为我们是四位处理器,结果溢出,必须丢弃最高位的数字,最终结果为0101,它的十进制结果正好是5,怎么样,神奇吗?

引入负数

补数实际上是一种处理带符号数的方法,用于变换数字的符号。这在计算机中被称为补码。我们之前算补数,需要借助模,实际上在计算机中,求补码有一套简单的办法,口诀就是取反加一

例如求13的二进制补码,那么就先将它的二进制取反,即对1101的每一位取反,我们前面说过,1表示真,0表示假,取反就是逻辑非运算,对1取反自然就变成0了,所以取反后的二进制为0010,然后对取反后的结果加上1,最终结果就是0011,它的十进制就是3,正好与13互为补数。

计算机二进制补码求法你学会了吗?

咱们之前计算的都是正数的加减运算,有同学肯定会疑问了,那如果引入负数会如何呢?

首先要明确一点,如果想表示负数,那肯定需要有一位来表示符号,因此4位二进制中,就只剩下三位有效位了,表示的正整数范围肯定会变小了。假设我们让4位二进制的最高位表示符号位,0表示正数,1表示负数,那么正数的范围只能是1~7,负数的范围是-8~-1

进位

在计算机中,负数的二进制使用它的补码表示,而补码的求法就是取反加一。例如-1的补码就是1的二进制取反加一,当有符号位时,符号位是不参与取反的,因此就是001取反加一得111

好了,学了这么多概念,赶紧来计算一下4 - 6的结果吧

加法计算
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 196,264评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,549评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 143,389评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,616评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,461评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,351评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,776评论 3 387
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,414评论 0 255
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,722评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,760评论 2 314
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,537评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,381评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,787评论 3 300
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,030评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,304评论 1 252
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,734评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,943评论 2 336

推荐阅读更多精彩内容

  • 网站乱码问题我们会经常碰到,大多见于非英文的中文字符或其他字符乱码,而且,这类问题常常是因为编码方式问题,主要原因...
    波段顶底阅读 2,788评论 1 9
  • 什么是嵌入式 IEEE(Institute of Electrical and Electronics Engin...
    Leon_Geo阅读 3,674评论 1 20
  • ​​​本文主要介绍嵌入式系统的一些基础知识,希望对各位有帮助。 嵌入式系统基础 1、嵌入式系统的定义 (1)定义:...
    OpenJetson阅读 3,280评论 0 13
  • 1、嵌入式系统的定义 (1)定义:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本...
    荣卓然阅读 1,789评论 0 5
  •  转自百度百科  计算机中的符号数有三种表示方法,即原码、反码和补码。三种表示方法均有符号位和数值位两部分,符号位...
    SunnyMore阅读 1,701评论 0 1