共计 1342 个字符,预计需要花费 4 分钟才能阅读完成。
1、背景:
用晶体管做逻辑门,逻辑门可以判断布尔语句,但是只有两个值:True 和 False。
2、如何用两个值表达更多的内容?————》方法:加位数
十进制只有 10 个数(0 到 9),要表示大于 9 的数,加位数就行了。
例如:263,这个数字 “ 实际 ” 代表 2 个 100、6 个 10、3 个 1,加在一起,就是 263。每列有不同的乘数,分别为 100、10、1,每个乘数都比右边大十倍。
因为每列有 10 个可能的数字(0 到 9),如果超过 9,要在下一列进 1. 因此叫 “ 基于十的表示法 ” 或十进制。
二进制也一样,只不过是基于 2 而已。二进制只有两个可能的数,1 和 0,每个乘数必须是右侧乘数的两倍。
例如:二进制数 101,代表 1 个 “4”、0 个 “2”、1 个 “1”,加在一起,得到十进制的 5。为了表示更大的数字,二进制可以有更多位数。
3、二进制
二进制中,一个 1 或 0 叫一 ” 位 ”。
(1) 8 位——1 字节
如果有 8 位能表示 256 个不同的值,2 的 8 次方;表示的最小数是 0, 8 位都是 0;最大数是 255,8 位都是 1。
常见的有 8 位机,8 位图像,8 位音乐,意思是计算机里大部分操作都是 8 位 8 位这样处理的。
8 位又叫字节。1 字节 = 8 位(1 bytes = 8 bits),如果有 10 个字节,意味着有 80 位。
小知识补充:一种算法:1 千字节 = 1000 字节。另一种算法: 1 千字节 = 2 的 10 次方 = 1024 字节.
1000 和 1024 都对
(2)32 位 或 64 位
32 位 或 64 位计算机,意思是一块块处理数据,每块是 32 位或 64 位。
「32 位能表示的最大数(32 个 1),是 43 亿左右」
「64 位能表达最大数是 9.2×10」
(3)浮点数、字母的表示
负数 :
大部分计算机用第一位表示正负:1 是负,0 是正。用剩下 31 位来表示数字。能表示的数字范围是 正 20 亿到负 20 亿。
浮点数 :
除了负数和正数,计算机也要处理非整数(浮点数),比如 12.7 和 3.14。浮点数最常见使用的标准是 IEEE 754 标准,用类似科学计数法的方法,来存十进制值。例如,625.9 可以写成 0.6259×10 ^ 3,.6259 叫 “ 有效位数 ” , 3 是指数。
在 32 位浮点数中,第 1 位表示数字的正负,接下来 8 位存指数,剩下 23 位存有效位数。
字母、文字 :
计算机可以用数字表示字母,给字母编号:A 是 1,B 是 2,C 是 3,以此类推。字母表示的发展进程如下:
-
5 位序列:
英国作家 弗朗西斯·培根,曾用 5 位序列 来编码英文的 26 个字母;五位(bit)可以存 32 个可能值(2^5)。
不足:这对 26 个字母够了,但不能表示 标点符号,数字和大小写字母。 -
ASCII:美国信息交换标准代码,发明于 1963 年,ASCII 是 7 位代码,足够存 128 个不同值。可以表示大写字母,小写字母, 数字 0 到 9, @ 这样的符号, 以及标点符号。
不足:一个字节有 8 位,128 到 255 的字符渐渐变得常用,128 以前是空的,是给各个国家自己 “ 保留使用的 ”,在美国,这些额外的数字主要用于编码附加符号,在俄罗斯,他们用这些额外的字符表示西里尔字符,而希腊电脑用希腊字母,等等。问题是:如果在土耳其 电脑上打开 拉脱维亚语 写的电子邮件,会显示 乱码。
-
Unicode:
统一所有编码的标准,设计于 1992 年,解决了不同国家不同标准的问题。最常见的 Unicode 是 16 位的,有超过一百万个位置,对所有语言的每个字符都够了。