计算机只能识别0和1,简称二进制。表达人类常用的十进制数字,比如3,可以使用更多位的二进制来表示,这个过程我们称之为进制转换。
十进制3转二进制 0011
使用多少位的二进制表达一个数字我们称之为bit,在计算机中, 最小的单位是字节(Byte),它由8个bit组成,所以在计算机中要表达十进制3,利用一个字节即可表示
一个字节存储3 0000 0011
因为一个字节共有8个位,每一位共有两种状态0和1,即可组成2的8次方,256种不同的状态,所以一个字节最多可以表达十进制0到255之间的数字,如果超过了怎么办?超过了就使用2字节(16位)存储,以此类推
两个字节存储256 0000 0001 0000 0000
一个字节存储255 1111 1111
大家可以看到,在表达256的时候,占用了2个字节共16位,而前7位因为用不到所以都是0,16位只使用了9位剩余的7位是不是有点浪费了?是的,但没办法,计算机最小单位就是一个字节。
大家在学习C语言的时候,会涉及到一个有符号和无符号两个概念,产生这个是因为跟计算机字节存储有关
- 有符号,一个字节的第一位表示是否是负数,所以实际上只有7位存储实际数值,表达范围就是-128至127
0000 0000 => 0
1111 1111 => -1
1000 0000 => -128
0111 1111 => 127
- 无符号,一个字节所有位数用于存储实际数值,由于多了一位,存储值就有了255种状态
所以,通常没有负数的情况下使用无符号,有负数的情况下使用有符号
在计算机下,所有所有的数据归根到底就是二进制,所以数据最终存储到磁盘上也是二进制组成的字节,以下是一些换算方式
- 8 bit = 1 Byte
- 1024 Byte = 1 KB
- 1024 KB = 1 MB
- 1024 MB = 1 GB
- 1024 GB = 1 TB