一、bit(位)
- 计算机系统中最小的单位,
- 只有0和1两个二进制数据,
- 一个0或者1,就是1bit,可以简写为1b
二、byte(字节)
- 计算机系统最常用的单位,
- 1byte = 8bit,可以简写为1B
- 家用的200M带宽,其实是200Mb,也就是25MB
三、word(字)
- CPU在一次操作中处理的数据,称为字,这个字的长度,被称为字长
- 例如:64位CPU一次可以处理64bit的数据,也就是8byte,其中数据就是字,位数就是字长
- 不同位数的CPU,字长是不一样的
- 32位的CPU,字长就是32
四、字符
- 各种文字和符号统称为字符
- 同一个字符,使用不同编码,占用空间大小不同,表示的值也不同
五、字符集
- 一类字符的集合
- 例如Unicode字符集,GBK字符集
六、字符编码
- 计算机存储的数据,全部使用2进制数字表示,
- 如果要表示字符,就需要一些编码规则,
- 例如:97表示'a',65表示'A',
- 因为各个地区对字符的使用是不一样的,所以会有很多种编码规则
1. ASCII码(American Standard Code For Informatica Interchange美国信息交换标准代码)
- 主要用于显示英文
- 单字节编码,一个字符占用1一个字节
- 例如:97表示'a',65表示'A',48表示'0'
- 表示英文是足够的,但是表示其他语言,128个字符是无法满足的
2. Unicode编码
- 一个字符集,包含了很多字符和二进制编码的对应关系
- 可以维护世界上所有的语言的字符和编码的对应关系
- 如果有新的字符,那么继续扩展字符集
- 在java中,一个Unicode字符占用两个字节,并且兼容ASIIC码
3.UTF-8编码(8-bit Unicode Transformation Format)
- 一种Unicode编码的实现,并且被广泛使用
- 占用空间大小是可变的,使用1-4个字节表示一个字符
- 通过特殊的算法和Unicode编码转换
4. UTF-8和Unicode编码对应关系
Unicode编码(16进制) | UTF-8编码(二进制) |
---|---|
0000 0000 ~ 0000 007F | 0*** **** |
0000 0080 ~ 0000 07FF | 110* **** 10** ***** |
0000 0800 ~ 0000 FFFF | 1110 **** 10** **** 10** **** |