这是我参与8月更文挑战的第19天,活动详情查看:8月更文挑战
这篇文章主要讲计算机基础的数据存储方式,文章翻译自斯坦福大学的课程:web.stanford.edu/class/cs101…
Bits and Bytes(位和字节)
计算机储存数据的最小单位是位和字节,下面我们看一下位和字节如何编码信息。
Bits(位)
位是原子的,不可分割的,最小的存储单位
位仅存储 0 或者 1
“在计算机中,全是 0 和 1” 位
8 位 = 1 字节
计算机中所有内容都是 0 和 1,位仅存储 0 或 1,是最小的存储单元
Byte(字节)
1 字节 = 8 位
比如 01011010
一个字节可以储存一个字符,比如 'A','x','$'
N 位可以有多少种组合方式?
1、2、3 位可以有多少种组合方式?
Number of bits | Different Patterns |
---|---|
1 | 0 1 |
2 | 00 01 10 11 |
3 | 000 001 010 011 100 101 110 111 |
我们可以看到,1位的话只有两种选择 0 或 1
2位的话,我们固定住左边的位,0 的情况下有 00、01 两种选择,1 的情况下有 10、11 两种选择,于是这种情况下选择是 2*2=4 种
3位同理,我们固定住前两位,4种选择,每个前两位各有两种,于是是 4*2=8种
依次类推,4位是 8*2=16种,于是我们可以得到:
- 1位:2
- 2位:4
- 3位:8
- 4位:16
- 5位:32
- 6位:64
- 7位:128
- 8位:256(一字节) 于是可以发现,n位有 2^n(2的n次方)种组合方式
一个字节有 256 种组合方式
1 字节由 8 位组成
8 位可以产生 256 种组合模式
那么怎么用这 256 种组合模式呢?
如何在一个字节种存储一个数字?
从0开始向上数,每个数字对应一种模式,直到模式用完
0、1、2、3、4、5...254、255
一个字节可以容纳 0-255 之间的数字
即通过 256 种不同的模式,我们可以存储 0-255 之间的数字
非常适合存储字符/字母
Bytes(字节)
Byte(单字节)- 信息储存单位
一个文档、一张图片、一部电影,包含多少个字节?
一个字节足以容纳一个键入的字符,比如 'A','x','$'
尽管硬件有非常大的差异,但是所有存储都以字节位单位
Bytes and Characters - ASCII Code(字节和字符 - ASCII 码)
ASCII 是用数字表示每一个键入字符的编码
每个数字储存在一个字节中,于是数字的范围是 0-255
- A 是 65
- B 是 66
- a 是 97
- space 是 32
Unicode 是普通话、希腊语、阿拉伯语等语言的编码,通常每个“字符”有两个字节表示
Typing, Bytes, and You(打字、字节和你)
像上面提到的,每一个字母储存在一个字节内
100 个键入的字母占用 100 个字节
和图片等相比,文本非常紧凑,占用了很少的字节
计算机中的数字
一个字节可以很好的处理单个字符,但是计算机也很擅长处理数字
Integers(整数)通常用4-8字节存储
4 字节可以存储 -2147483648 到 2147483647 范围内的数字 8 字节可以存储 -9223372036854775808 到 9223372036854775807 范围内的数字
二进制的加法就像普通带进位的加法
最左面的位代表符号,于是移动到最左面的位将从正数变成负数
此处参考:Integer Overflow and Gangam Style
以上是计算机储存数据的最小单位,位和字节的基本概念,欢迎点赞和评论
参考: