bit比特, Byte字节,基础知识
在计算机的存储领域中经常会看到 100Mb和100MB,这样的写法有什么区别?计算机中int是32位还是64位存储说的又是什么呢?这些概念都非常简单,但是时间长了就会搞混,这里简单的讲解一下。
计算机底层存储是二进制的,也就是 10011001
这样的形式,那么最底层的存储单位就是bit
1 bit (比特)可以表示 [01] ,转换成整型 0 - 1 。 21 - 1
2 bit (比特)可以表示 [01][01], 转换成整型 0 - 3。22 - 1
n bit (比特) ..... 转换成整型 2n -1
因为历史传承和使用方便优雅等原因(具体可以看《编码》这本书),定义 1 Byte = 8 bit
1 Byte = 8 bit = 28 -1 = 255(插一句,ip 不就是 255.255.255.255 4个 Byte 吗)
那么32位int 什么意思呢?就是4 Byte(4 * 8 = 32 bit ) 长度的整型 。
那么64位int 什么意思呢?就是8 Byte (8 * 8 = 64 bit)长度的整型 。
4 Byte int长度 为 232 - 1 = 4294967295
8 Byte int长度 为 264 - 1 = 18446744073709551999
写到这里都是大家应该会发现这表示的都是正整数,那么负整数怎么办呢?
利用了bit 中 最左边的一位表示正负 0表示+ 1表示 -
那么我们可以得出,
- 无符号下
32位 int 232 - 1 = 4294967295
64位 264 - 1 = 18446744073709551999 - 有符号
32位 int 231 - 1 = 2147483647
64位 int 263 - 1 = 9223372036854775999
有了基础的知识就可以得出(这里用的是简洁写法 将 1024 简化成 1000)
1KB = 1000 * 1 Byte = 1000 * 8 * bit = 8Kb
1MB = 1000 * 1000 * 1 Byte = 1000 * 1000 * 8 * bit = 8Mb