声明:通俗易懂和专业准确的权衡
0 和 1 的世界
计算机只认0和1,所有的数据都由 0 和 1 的组合:数字、字母、汉字、图片、音乐、电影、游戏、网页等都可以由很多的0/1组成。
计算机如何知道一长串的0/1是什么含义呢?
比如 0100 0001
可能表示数字 65,可能表示大写字母A
,可能和其他更多的0/1共同组成一个汉字,也可能表示图片的一个点的颜色,其意义完全取决于人们约定的规则。
比特和字节
字节是计算机的基本单位。人们常说的一个Word 文档 40 KB,一张图片 4 MB,一首歌 10 MB,一部电影 4 GB,内存 8 GB,存储 512 GB等等。这里的大“B”就是Bytes,字节。
比特:宽带500M 宽带 实际上的指速度为 500Mbps的宽带,bps是 bit per seconds,即比特每秒。所以 500M 的宽带最快下载速度不是500MB/s,而是(500M bit/s)/(8 bit/byte)=62.5 MByte/s。比特,bit,一般用小b表示。
正着说一遍:每一个0/1叫做一个比特(bit),8个比特组成一个字节(Byte)。通常计算机一次最少处理一个字节。
反着再说一遍:一个字节有8个比特;每个比特只能是0或1,8个比特一共可以表示 2^8 = 256 种组合,可以代表256种含义(取决于人们约定的规则)。
二进制:用0和1表示数字
首先想到用8个比特表示 0-255:人们约定,高位到低位每个bit有不同的权重,如此便可用8个bit表示0-255的所有数字
高位 | 低位 | |||||||
---|---|---|---|---|---|---|---|---|
权重 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
举例:0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
举例:35 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 1 |
举例:65 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 |
举例:128 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
举例:255 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
16进制:和二进制没有任何区别,只是二进制的更简单的表示法
用0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F表示4个比特 0~15
一般加上前缀0x
,提醒读者接下来是16进制