当谈论计算机存储和数据传输时,"bit"(比特)"Byte"(字节)是两个常见的术语,它们具有不同的含义和用途。

位(bit):“位”来自英文bit,音译为“比特”,习惯上用小写的“b”表示。表示二进制位。数据传输计量单位

bit(比特)比特是信息的最小单位,它可以表示为0或1。它是二进制系统中的基本构建块,代表着二进制数据的状态。比特用于表示数字、字符、图像、音频、视频等各种数据类型。计算机内部的数据处理和传输都是以比特为基础进行的。

比如:64位处理器,说的就是运行64位数据的指令,处理器每运行一次可以处理64bit数据。

*请记住1*:在计算机计量单位中我们日常看到的——b就是bit的缩写,也就是位(bit) 

字节(Byte):“字节”来自英文Byte,音译为“拜特”,习惯上用大写的“B”表示。文件存储计量单位

Byte(拜特)字节是计算机存储和传输数据的基本单位。它由8个连续的比特组成,可以存储一个字符或8位的二进制数据。字节通常用于表示计算机中的存储容量、文件大小、网络带宽等。计算机的内存、硬盘驱动器、网络连接等都以字节为单位进行管理和传输。

字节是计算机中数据大小的基本单位。 计算机中以字节为单位存储和解释信息,规定一个字节由八个二进制位构成(后面会详解一下),即1个字节等于8个比特(1Byte=8bit)。我们看到的文件存储大小就是以字节为单位的(B)。

*请记住2*:在计算机计量单位中我们日常看到的——B就是Byte缩写,也就是字节(Byte)

比如:磁盘读写速度,SSD一般都写成7000MB/s这类的,指的就是每秒磁盘读取速度为7000 MByte

下面就按照上面的2个*请记住*,扩展去讲述bit、Byte、bps、Bps、pps、Gbps的区别

B与b不同,注意区分大小写!

*请记住1*:b就是bit的缩写,也就是位(bit)

b是⽐特位(bit);Kb是千⽐特位。

bit=b:    比特
Kbit=Kb:千比特
Mbit=Mb:兆比特
Gbit=Gb:吉比特
Tbit=Tb:太比特

*请记住2*:B就是Byte缩写,也就是字节(Byte)

B是字节(Byte);KB是千字节

Byte=B:    字节
KByte=KB:千字节
MByte=MB:兆字节
GByte=GB:吉字节
TByte=TB:太字节

单位换算:

K=Kilo:千
M=Mega:兆
G=Giga:吉
T=Tera:太 T、G、M、K之间的单位换算是2的10次方=1024
因此:
1GB=1 GByte=1024 MByte=1048576 Kbyte= 1073741824 Byte 这里1GB代表Byte字节
1Gb=1 Gbit=1024 Mbit=1048576 Kbit=1073741824 bit 这里1Gb代表bit位

bit和Byte是怎么来的?(这部分对帮助理解bit和Byte很重要)

我们可以这样去理解:

1、在最初设计计算机时,科学家们考虑如何才能让计算机表达和运算……省略无数字(请好奇的朋友自行百度)……,最终发现:二进制是最好表达和最稳定实现的。因此敲定计算机以二进制进行计算,每个bit可以有2种状态:“0”或者“1”。

在中央处理器中(CPU),0 和 1 是通过不同的电压或电平来区分的。通常将高电平表示为1,低电平表示为0。通过控制电路中的电压变化,可以改变电子开关的状态,从而实现不同的逻辑操作和数据传输。

在内存中(DRAM),0 和 1 是通过不同的电荷状态或电压水平来区分的。当电容充满电荷时,表示为1;当电容没有电荷时,表示为0。通过将电荷存储在电容中,DRAM可以在电子信号的帮助下维持数据状态,使数据可以被读取和写入。

在硬盘存储中(SATA),0 和 1 通常是通过磁性区域的磁极方向来区分的。

硬盘存储使用磁性材料(如铁磁性材料)在磁性介质上创建磁区来表示数据。每个磁区都具有一种磁极方向,通常分为两种情况:

  1. 磁极方向朝向一个方向(例如,磁极向上)表示数字 0。
  2. 磁极方向朝向另一个方向(例如,磁极向下)表示数字 1。

2、但是单独一个“0”或者一个“1”,是无法表示其他东西的,因此需要将多个bit单元组合绑定起来,组合起来就会表达更多种可能。(大家可以参考着ASCII编码去理解)。

3、因多种原因(二进制系统的基础、兼容性和标准化、存储容量的平衡、字节地址和字节对齐等),通用计算机会选取8个bit组合为一个存储单元(2的8次方组合起来可以表示256种不同的状态)。(有用9位字节(称为非字节)来表示数据的,不列举)

1个Byte=8个比特(8 bits)可以存储多种类型的数据,包括但不限于以下内容:

  1. 无符号整数(Unsigned Integer):8个比特可以表示 0 到 255 之间的整数。每个比特可以表示两个状态(0 或 1),所以 8 个比特可以组合成 2^8 = 256 种不同的组合。

  2. 字符(Character):使用ASCII编码(American Standard Code for Information Interchange),8个比特可以表示出绝大部分基本的英文字母、数字、标点符号和特殊字符。

  3. 有符号整数(Signed Integer):8个比特可以用来表示 -128 到 127 之间的有符号整数。其中一个比特用来表示符号位(0 表示正数,1 表示负数),剩余的7个比特表示数值。

  4. 布尔值(Boolean):8个比特可以表示8个布尔值,每个比特代表一个布尔值,0 表示假(False),1 表示真(True)。

  5. 图像像素(Image Pixel):在黑白图像中,每个像素可以用一个比特来表示,0 表示黑色,1 表示白色。

需要注意的是,具体使用8个比特存储的数据类型取决于数据的上下文和编程语言的规范。不同的应用和编程环境可能会有自己的数据表示方式和数据类型定义。(同理,不列举)

因此Byte和bit的转换可以表示为

1 Byte=8 bit 或者 1bit=0.125 Byte

看完上面的这些,相信大家就好理解bit、Byte、bps、Bps、pps、Gbps了,下面我只要把他们各自的定义描述出来,大家便能自己解决这些问题了。

bps=b/s    bits per second    表示每秒传输多少个bit(位)            常用于信号传输速率、网络带宽和音视频数据传输速度
Bps=B/s Bytes per second 表示每秒传输多少个Byte(字节) 常用于数据的传输速率
pps=p/s Packets per second 表示每秒传输多少个Packets(数据包) 常用于网络上数据包转发速率
Gbps=Gb/s Gbits per second 表示每秒传输多少个Gbit(吉比特位) 常用于交换机背板转发带宽

如果你还有疑惑,那我这么讲——bps和Bps表示区别:

从作用上讲(或从不同角度上讲),bps 和 Bps 用于衡量不同层面的数据传输速率或存储设备速度。bps 用于描述信号传输速率、网络带宽和音视频数据传输速度等(主要体现吞吐bit的速率,也就是带宽,家庭带宽中常见的200M带宽其实就是200Mbps);

而 Bps 用于描述数据的传输速率、存储设备的读取/写入速度和数据缓存等。它们是衡量和比较数据传输速度的常用单位,以便我们了解和评估数据传输的效率和性能(主要体现存储数据的性能,也就是磁盘每秒写入的速度)。

他们也一样遵循这个转换关系

1 Bps =1 B/s =8 bps
1 KBps =1 KB/s =8 Kbps
1 MBps =1 MB/s =8 Mbps
1 GBps =1 GB/s =8 Gbps
1 TBps =1 TB/s =8 Tbps

图一:文件存在硬盘里的大小是按照Byte单位计算的29KB

图二:迅雷下载,也是按照每秒文件写入到磁盘多少文件来概体现的,因此是 2.67 KB/s,这里如果要体现成传输速率的话,应把 2.67 KB/s 换算成 21.36 KBps(2.67KBps*8=21.36Kbps)

因此可以看出,迅雷这里主要展示的概念是文件写入磁盘的速度去解读的,而不是体现网络传输带宽。(因为即便是网上提供该资源的下载速度足够快,每秒最大可以提供100000MB,而你家的带宽只可以达到每秒200M,但是你的硬盘读写速度只有每秒50MB,你的数据写入速度最大也就是50M(酒桶最短原理)。所以迅雷是以文件写入磁盘的真实状态来体现,这样表达才更准确、严谨。这也是为什么Bps是常用在磁盘读写性能的指标——文件存储计量单位,而不是用数据传输速率bps来表达的原因。)

现在你都懂了吗?

那么大家想想,现在各大运营商宣传的家庭带宽100Mbps、200Mbps、500Mbps,对应使用迅雷下载的速度KB/s,理论值分别应该是多少呢?

单位换算详解:bit、Byte、bps、Bps、pps、Gbps的单位详细说明及换算的更多相关文章

  1. css 相对单位rem详解

      CSS3新增了一个相对单位rem(root em,根em),这个单位引起了广泛关注.这个单位与em有什么区别呢?区别在于使用rem为元素设定字体大小时,仍然是相对大小,但相对的只是HTML根元素. ...

  2. Hadoop_10_shuffle02_详解Shuffle过程【来源网络】推荐更为详细

    网址:http://www.cnblogs.com/felixzh/p/4680808.html Shuffle过程,也称Copy阶段.reduce task从各个map task上远程拷贝一片数据, ...

  3. 详解手把手Maven搭建SpringMVC+Spring+MyBatis框架(超级详细版)

    转载(https://www.jb51.net/article/130560.htm) SSM(Spring+SpringMVC+Mybatis),目前较为主流的企业级架构方案.标准的MVC设计模式, ...

  4. 网络通信协议八之(传输层)TCP协议详解

    传输层协议 分段是为了提高传输效率,封装是指给每个数据段添加一个编号 端到端的传输是逻辑上的端到端,并不是真正意义上的发送方某层与接收方某层之间的传输 IP协议只是保证数据报文发送到目的地,为主机之间 ...

  5. CentOS 最新版的下载地址 + 版本选择详解

    CentOS 最新版的下载地址 + 版本选择详解 发现越来越多的机关单位.事业单位开始使用 Linux 作为主要服务器,毕竟,Linux的稳定性和高效性是众所周知的,所以我也打算把自己这一块技术加强一 ...

  6. 【ORM】--FluentNHibernate之AutoMapping详解

           上篇文章详细讨论了FluentNHibernate的基本映射的使用方法,它的映射基本用法是跟NHibernate完全一样的,首先要创建数据库链接配置文件,然后编写Table的Mappin ...

  7. PHP isset()与empty()的使用区别详解(转)

    通过对PHP语言的学习,应该知道它是基于函数的一款HTML脚本语言.庞大的函数库支持着PHP语言功能的实现.下面我们为大家介绍有关PHP函数isset()与empty()的相关用法.     PHP的 ...

  8. Linux下rz命令使用的实例详解

    Linux中rz命令和sz命令都可用于文件传输,而rz命令主要用于文件的上传,下面将通过几个实例来给大家详细介绍下Linux下rz命令的用法,一起来学习下吧. rz命令可以批量上传文件,当然也可上传单 ...

  9. view坐标_ _ Android应用坐标系统全面详解

    转:http://blog.csdn.net/yanbober/article/details/50419117 1 背景 去年有很多人私信告诉我让说说自定义控件,其实通观网络上的很多博客都在讲各种自 ...

  10. Android菜单详解(四)——使用上下文菜单ContextMenu

    之前在<Android菜单详解(二)——创建并响应选项菜单>和<Android菜单详解(三)——SubMenu和IconMenu>中详细讲解了选项菜单,子菜单和图标菜单.今天接 ...

随机推荐

  1. 2015-CS

    2015-CS 数据库部分 create table [EMPLOYEE]( [EmpNo] varchar(10) not null primary key, [EmpName] varchar(1 ...

  2. 使用TorchLens可视化一个简单的神经网络

      TorchLens:可用于可视化任何PyTorch模型,一个包用于在一行代码中提取和映射PyTorch模型中每个张量运算的结果.TorchLens功能非常强大,如果能够熟练掌握,算是可视化PyTo ...

  3. 「joisc2016 - D3T2」回転寿司

    题意大概是这样,「每次操作选出区间中的一个 LIS(strictly),满足其开端是极靠近左端点且大于 \(A\) 的位置,答案即这个 LIS 的末尾,做一个轮换后弹出序列末端」. 首先做几个观察. ...

  4. Solution Set -「ARC 109」

    「ARC 109A」Hands Link. 讨论即可,除了煞笔出题人写了个死马的题面. #include<cstdio> #include<algorithm> using n ...

  5. MySQL系列之读写分离架构——Atlas介绍、安装配置、Atlas功能测试、生产用户要求、Atlas基本管理、自动分表、关于读写分离建议

    文章目录 1. Atlas介绍 2.安装配置 3. Atlas功能测试 4. 生产用户要求 5. Atlas基本管理 6. 自动分表 7. 关于读写分离建议 1. Atlas介绍 Atlas是由 Qi ...

  6. PostgreSQL主备库搭建

    pg主备库的搭建,首先需在2个节点安装pg软件,然后依次在2个节点配置主备. 本文采用os为CentOS7.6,pg版本使用14.2,以下为详细部署步骤. 本文两个节点的ip地址如下: [root@n ...

  7. Swagger系列:SpringBoot3.x中使用Knife4j

    目录 一.简介 二.版本说明 三.使用 四.效果图 一.简介 官网:https://doc.xiaominfo.com/ Knife4j是一个集Swagger2 和 OpenAPI3 为一体的增强解决 ...

  8. Stride游戏引擎试毒

    想找别的引擎用, 主要还是因为unity和国内盗版用户的互相伤害, 就算用免费的个人版也要不停的验证. stride引擎, 原名xenko, 再原名paradox... 一开始是日本厂商开发的引擎, ...

  9. Kubernetes跨StorageClass迁移,切换Rainbond默认SC

    基于主机安装或基于Kubernetes安装的 Rainbond 集群(均使用默认参数安装),默认使用的共享文件存储是 NFS ,以 Pod 方式运行在 Kubernetes 中,但这种方式也有一些无法 ...

  10. 天上掉 Pizza

    实在不知道错哪了... 对着 std 检查了好几遍了QAQ 题解见注释(不过估计题解也是错的,不然为什么写错啊QAQ #include<bits/stdc++.h> using names ...