【8.21】计算机基础 - 数据和存储(1) - 位 字节

240 阅读2分钟

这是我参与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 bitsDifferent Patterns
10 1
200 01 10 11
3000 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 是普通话、希腊语、阿拉伯语等语言的编码,通常每个“字符”有两个字节表示

image.png

Typing, Bytes, and You(打字、字节和你)

像上面提到的,每一个字母储存在一个字节内

100 个键入的字母占用 100 个字节

和图片等相比,文本非常紧凑,占用了很少的字节

计算机中的数字

一个字节可以很好的处理单个字符,但是计算机也很擅长处理数字

Integers(整数)通常用4-8字节存储

4 字节可以存储 -2147483648 到 2147483647 范围内的数字 8 字节可以存储 -9223372036854775808 到 9223372036854775807 范围内的数字

二进制的加法就像普通带进位的加法

最左面的位代表符号,于是移动到最左面的位将从正数变成负数

此处参考:Integer Overflow and Gangam Style

以上是计算机储存数据的最小单位,位和字节的基本概念,欢迎点赞和评论

参考: