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