写点什么

bit 比特, Byte 字节, 基础知识

用户头像
Dnnn
关注
发布于: 2020 年 09 月 10 日

在计算机的存储领域中经常会看到 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



用户头像

Dnnn

关注

还未添加个人签名 2019.07.09 加入

还未添加个人简介

评论

发布
暂无评论
bit比特, Byte字节,基础知识