计算机科学笔记--布尔逻辑、逻辑门与二进制

这一系列博客是B站上计算机科学速成课的学习笔记,既是自己学习的总结,也可以帮助其他人简单的了解一下。

3.布尔逻辑和逻辑门

如今的计算机都是基于二进制的,然而早期的计算机有三进制的甚至有五进制,进制越多,状态就越多,就越难以区分信号。只用“开”和“关”两种状态有助于解决这个问题。计算机采用二进制的另一个原因是,有一整个数学分支存在专门处理“真”和“假”—— “布尔代数”!乔治·布尔(George Boole)是布尔二字的由来,是一位 19 世纪自学成才的英国数学家,布尔用 逻辑方程 系统而正式的证明真理(truth)。他在 1847 年的第一本书"逻辑的数学分析"中介绍过,

在"常规"代数里,变量的值是数字,可以进行加法或乘法之类的操作,但在布尔代数中,变量的值是 true 和 false,能进行逻辑操作。

布尔代数中有三个基本操作:NOT, AND 和 OR
在这里插入图片描述
最重要的是用晶体管可以轻松的实现这些逻辑。
非门
非门
与门
与门
或门
或门
除了前面说的三个,另一个有用的布尔操作叫异或,顾名思义异或表示A与B不同时为真,相同为假,与之对应的是同或。真值表如下:

ABF
000
011
101
110

用晶体管实现异或比较复杂,但可以通过与、或、非实现。
在这里插入图片描述
实现方式并不唯一。重要的是,现在可以把 XOR 放入"工具箱"了不用担心 XOR 具体用了几个门,这几个门又是怎么用晶体管拼的,或电子是怎么流过半导体的再次向上抽象。工程师设计处理器时,很少在晶体管的层面上思考,而是用更大的组件,比如逻辑门,或者由逻辑门组成的更大组件。

4.二进制

前面我们提到晶体管做逻辑门,逻辑门可以判断布尔语句,布尔代数只有两个值:True 和 False。但如果只有两个值,我们怎么表达更多东西?这就需要数学了。1 个二进制值可以代表 1 个数,我们可以把真和假 ,当做 1 和 0,如果想表示更多东西,加位数就行了。8位是计算机中最常见的位值,以至于有专门的名字:字节

1 字节   = 8 位
1 bytes = 8 bits

可能你听过 千字节(Kb)兆字节(Mb)千兆字节(Gb),不同前缀代表不同数量级。二进制里,1 千字节 = 2的10次方 = 1024 字节。
你可能听过 32 位 或 64 位计算机,你现在用的电脑肯定是其中一种,意思是一块块处理数据,每块是 32 位或 64 位。32 位能表示的最大数,是 43 亿左右。我们需要有方法表示正数和负数,大部分计算机用第一位表示正负:1 是负,0 是正,用剩下 31 位来表示数字,能表示的数字范围是 正 20 亿到负 20 亿。除了负数和正数,计算机也要处理非整数,比如 12.7 和 3.14,或"星历 43989.1",这叫 浮点数,因为小数点可以在数字间浮动,有好几种方法 表示浮点数,最常见的是IEEE 754标准,类似于科学计数法。在 32 位浮点数中,第 1 位表示数字的正负,接下来 8 位存指数,剩下 23 位存有效位数。
在这里插入图片描述
谈完了数字接下来谈谈字母,最直接的方法是给字母编号。目前最常用的是ASCII码(美国信息交换标准代码),发明于 1963 年,ASCII 是 7 位代码,足够存 128 个不同值。
在这里插入图片描述
虽然ASCII码足够多,但随着计算机在亚洲兴起,面对数千个字符的汉字时,根本没法用8位来表示所有的字符。为了解决这个问题,每个国家都发明了多字节编码方案,但不相互兼容。所以Unicode 诞生了 统一所有编码的标准,设计于 1992 年,解决了不同国家不同标准的问题,最常见的 Unicode 是 16 位的,有超过一百万个位置 ,对所有语言的每个字符都够了。

就像 ASCII 用二进制来表示字母一样,其他格式 - 比如 MP3 或 GIF -用二进制编码声音/颜色,表示照片,电影,音乐,重要的是,这些标准归根到底是一长串位,甚至操作系统,只不过是一长串 1 和 0。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值