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.2x10」
(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 位的,有超过一百万个位置 ,对所有语言的每个字符都够了。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。