当前位置: 首页 > news >正文

【计算机】单位制前缀的歧义-KB、kb、MB混用

引言

经常遇到容量、带宽的单位,MB,GB在进行单位换算时,总是傻傻分不清,查些资料浅记录一下。

公制(metric system)

又译米制,是一个国际化十进位量度系统。法国在1799年开始使用公制,是第一个使用公制的国家。源自公制的国际单位制已成为国际大多数国家的主要量度系统。美国是现今工业化国家中唯一未将国际单位制定义为官方量度系统的国家,不过自从1866年起也已开始在科研、医疗和军事领域使用国际单位制[1]。英国政府已承诺将许多量测单位改为公制系统,但民间还没有普遍使用,一般常用的单位仍是英制单位。

B和b

国际电工委员会(即International Electrotechnical Commission, IEC)与国际标准化组织(即International Standardization Organizat, ISO)于2008年联合颁布的技术标准ISO/IEC 80000-13《信息科学与技术》中的正式定义,字节的符号为大写英文字母“B”,而比特的符号为小写字母“b”。这也是kB与kb之间的区别——一个是“千字节”,一个是“千比特”。
实际上比特与字节都是十分常用的单位,只是二者常用的领域不同。字节常被用作数据储存容量的最小单位,而比特常被用作数据传输速率的最小单位,例如b/s(比特每秒,也写作bps),如果数据下载速率为810kb/s。
两种单位有着不同的常用领域。但用字节形容数据传输速度,用比特形容数据大小也是完全没有问题的,具体情况具体规范。

那么100M的带宽(也就是100Mbps),下载的理论速度是12.5MB/s。

单位制前缀

SI

国际单位制

国际单位制(法语:Système International d’Unités,简称SI),源于公制,是世界上最普遍采用的标准度量系统。国际单位制以七个基本单位为基础,由此建立起一系列相互换算关系明确的“一致单位”。另有二十个基于十进制的词头(前缀),当加在单位名称或单位符号前的时候,可用于表达该单位的倍数或分数。

在精确度不是很重要的上下文中,如文件和内存大小,这些词头被广泛使用来表示二进制,但是和国际单位制词头的定义相冲突。

IEC

二进制词头
KB / KiB,MB / MiB,GB / GiB,… 的区别是什么?
KB / KiB,MB / MiB,GB / GiB,… 的区别是什么?

1999年,国际电工委员会(IEC)公布了修正2:“IEC 60027-2:电工技术应用的字母符号—第二部分:通信和电子。”这个标准,在1998年通过,介绍了词头“kibi-”、“mebi-”、“gibi-”、“tebi-”、“pebi-”、“exbi-”,作为二进制乘幂的计数方法。名字的前两个字母来源于原来的国际单位制词头(例如, kilo binary byte缩写为“kibi-Byte”、“kiB”、“kibi-byte”),而后面的“bi”是二进制的缩写。同时明确定义,从IEC的观点来看,国际单位制词头只有十进制的意义而不再用作二进制的意义。

二进制词头已经被很多其他组织采用了,比较著名的有电气电子工程师协会(参见IEEE 1541),欧洲联盟(作为一致性文件HD 60027-2:2003-03[2])。然而,缺少官方支持,二进制词头还没有广泛被制造业者和个人采用,很多人继续在二进制领域使用国际单位制词头。

早期计算机的信息存储容量都很小。在这样的情况下,1 kB代表的到底是1000字节还是1024字节似乎并不是那么重要,毕竟这24字节的差异在1000字节面前也只是2.4%的误差而已。随着大小增加,百分比差距在十进制和二进制之间变大,从2.4%(千-K)到超过25%。

kB与KiB这两个单位之间的歧义就消失了吗?事实上并没有。许多计算机操作系统,例如当今应用非常广泛的Windows系统就保留了“kB系列”的单位,使用1 kB来指代1024 B。而与电脑操作系统上1 kB = 1024 B不同的是,许多硬盘制造商的指标中却又保留着1 kB = 1000 B的标准。因此很多消费者就会注意到自己购买得明明是“1 TB”(1, 099, 511, 627, 776 B)硬盘,但在插到电脑上后硬盘的大小却“缩水”成了“954 GB”(1, 000, 000, 000, 000)的情况。这就是计算机操作系统和硬盘制造商所使用的单位标准不同而导致的,也是业界标准混乱的一个体现。

什么单位被使用和乘幂是二进制还是十进制,依赖于上下文并且不能由单位单独确定。
在这里插入图片描述

场景

硬盘

硬盘制造商用十进制来表示容量。这种用法有很长久的传统,甚至在国际单位制词头在1960年采用前就开始使用了。例如,第一个IBM350的硬盘有5,000,000个6比特字在100个字扇区(如块)组合起来。这出现在国际单位制词头之前。所有硬盘驱动器制造商都使用SI前缀声明容量。

内存

由于当前硬件寻址系统的固有二进制设计,许多计算机程序任务以 2 的幂来引用内存。所以一直是按照JEDEC 内存标准来使用传统前缀。

windows操作系统

采用二进制报告容量,买一个30 GB(30×10^9字节)的硬盘会明显少了容量,因为Microsoft Windows不会报告30 GB,而是用两种方法来报告硬盘的容量:30,064,771,072字节和28 GB(28×2^30字节)。

macOS系统

现在Apple 产品规范、iOS 和 macOS(包括Mac OS X Snow Leopard:10.6 版)现在使用SI 前缀报告容量。

相关文章:

【计算机】单位制前缀的歧义-KB、kb、MB混用

引言 经常遇到容量、带宽的单位,MB,GB在进行单位换算时,总是傻傻分不清,查些资料浅记录一下。 公制(metric system) 又译米制,是一个国际化十进位量度系统。法国在1799年开始使用公制&#xf…...

nodejs调用浏览器打开URL链接

本文主要介绍的是node.js调用Chrome浏览器/默认浏览器打开链接地址的相关内容,分享出来供大家参考学习,下面来一起看看详细的介绍: 安装第三方插件open 通过open模块,可以在任何平台上打开某个浏览器网址。 通过NPM安装 npm i…...

ARM uboot 的移植2-从三星官方 uboot 开始移植

一、inand 驱动问题的解决 1、先从现象出发定位问题 (1) 解决问题的第一步,是定位问题。所谓定位问题,就是找到源代码当中导致这个问题的那一句或者那几句代码。有时候解决这个问题需要修改的代码和直接导致这个问题的代码是不同的。我们这里说的定位问…...

js作用域和作用域链

1、局部作用域分为函数作用域和块作用域 1.1、函数作用域: 在函数内部声明的变量只能在函数内部被访问,外部无法直接访问。 总结 1.函数内部声明的变量,在函数外部无法被访问 2.函数的参数也是函数内部的局部变量 3.不同函数内部声明的变量无法互相访…...

C语言字符串

目录 一、字符串的引入和注意事项 1.1 字符串定义的几种方式: 1.2 定义字符串的方法一和方法二的区别: 1.3 字符串输出的几种方式: 1.3.1 循环下标法遍历输出字符串: 1.3.2 转义字符%s输出字符串: 1.3.3 使用puts函…...

Eureka注册中心快速入门

一、提供者与消费者**服务提供者:**一次业务中,被其他微服务调用的服务。(提供接口给其他微服务)**服务消费者:**一次业务中,调用其他微服务的服务。(调用其它微服务提供的接口)比如…...

xmu 离散数学 卢杨班作业详解【1-3章】

文章目录第一章 命题逻辑常用latex数学公式1.4.5679101113171923242627第二章 一阶逻辑1.2.3.6.9.10.12.13.一阶逻辑推理理论12.13.15.第三章 集合2478101213.第一章 命题逻辑 常用latex数学公式 符号代码∨\vee∨$\vee$∧\wedge∧$\wedge$→\rightarrow→$\rightarrow$⇒\Ri…...

mvn命令

在IDEA右侧Maven菜单中,有以下几种指令。 clean:清理,清除上一次构建生产的文件。执行该命令会删除项目地址下的target文件,但不会删除本地的maven已生成的文件。 validate:验证,验证项目是否正确且所有必…...

JS - 事件循环EventLoop

一、面试题:说一下事件循环(回答思路梳理) 首先 js 是单线程运行的( JS 可以修改 DOM,如果在 JS 执行的时候 UI 线程还在工作,就可能导致不能安全的渲染 UI),在代码执行的时候&…...

【Java基础】30分钟Git 从入门到精通

一、 版本控制工具1、什么是版本控制系统?版本控制系统(Version Control System):是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。版本控制系统不仅可以应用于软件源代码的文本文件,而且可以对…...

0100 MySQL03

1.distinct关键字 把查询结果去除重复记录,原表数据不会被修改,只能出现在字段的最前端 select distinct job from emp; select distinct job,deptno from emp;//表示两个字段联合起来 去重 2.连接查询 从一张表中单独查询,称为单表查询 两张表联合…...

32- PyTorch基础 (PyTorch系列) (深度学习)

知识要点 PyTorch可以说是现阶段主流的深度学习框架 . 1 PyTorch入门 1.1 PyTorch概述 Torch是什么?一个火炬!其实跟Tensorflow中Tensor是一个意思,可以当做是能在GPU中计算的矩阵.,也可以当做是ndarray的GPU版! PyT…...

用gdb.attach()在gdb下断点但没停下的情况及解决办法

在python中,如果导入了pwntools,就可以使用里面的gdb.attach(io)的命令来下断点。 但是这一次鼠鼠遇到了一个情况就是下了断点,但是仍然无法在断点处开始运行,奇奇怪怪。 这是我的攻击脚本 我们运行一下。 可以看到其实已经运行起…...

Linux入门篇-作业(jobs)调度(本质仍然是进程)

简介 之所以叫做作业调度,作业是以shell为单位的,一个shell建立的作业,不会被另外一个shell看到(包 括root),但是仍然可以看到作业对应的进程。①前台进程(front process) 运行在用户…...

vue 监听 取消监听

vue 的 watch 除了可以使用声明式的配置项以外,还可以通过命令式 this.$watch 方法。 如下是我们比较少用的命令式(想要初始只监听一次,必须命令式写法): 监听只运行一次 声明式 export default{data: {showType: fa…...

0103深度优先搜索和单点连通-无向图-数据结构和算法(Java)

文章目录1.1 走迷宫1.2 图的深度优先搜索实现1.3 算法分析及性能1. 4 单点连通性后记1.1 走迷宫 简单的迷宫,如下图1.1-1所示: 探索迷宫而不迷路,我们需要: 选择一条没有标记过的通道,在你走过的路上铺一条绳子&…...

进销存管理系统

技术:Java等摘要:进销存管理系统是为了实现企业仓库商品管理的系统化、规范化和自动化,从而提高企业管理效率而设计开发的管理信息系统。它完全取代了过去一直用人工管理的工作方式,避免了由于管理人员手工操作上的疏忽以及管理质…...

Sonar:VSCode配置SonarLint/SonarLint连接SonarQube

需求描述 公司为项目代码配置了Sonar检测,希望在VSCode中开发项目时能够同步检测结果。 注意事项 SonarQube版本必须为7.9,否则SonarLint无法连接(GitHub-SonarLint-Wiki第一行就有说明)!!!S…...

陀螺仪小车(Forerake-Car)

项目简介:搭建一辆有arduino UNO 与rnf24l01组成的小车;手部安装由arduino nano开发板、nrf24l01、imu构成的手势控制器,利用手势控制器检测手部状态、发送信号对小车进行前进,实现基于卡尔曼滤波的MPU6050姿态结算。 准备工作&am…...

Leetcode Day5 含有重复元素集合的组合+

1、含有重复元素集合的组合 给定一个可能有重复数字的整数数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的每个数字在每个组合中只能使用一次,解集不能包含重复的组合。 【题目传送门】 思…...

conda相比python好处

Conda 作为 Python 的环境和包管理工具,相比原生 Python 生态(如 pip 虚拟环境)有许多独特优势,尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处: 一、一站式环境管理&#xff1a…...

Admin.Net中的消息通信SignalR解释

定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...

云启出海,智联未来|阿里云网络「企业出海」系列客户沙龙上海站圆满落地

借阿里云中企出海大会的东风,以**「云启出海,智联未来|打造安全可靠的出海云网络引擎」为主题的阿里云企业出海客户沙龙云网络&安全专场于5.28日下午在上海顺利举办,现场吸引了来自携程、小红书、米哈游、哔哩哔哩、波克城市、…...

数据库分批入库

今天在工作中,遇到一个问题,就是分批查询的时候,由于批次过大导致出现了一些问题,一下是问题描述和解决方案: 示例: // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...

Maven 概述、安装、配置、仓库、私服详解

目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...

rnn判断string中第一次出现a的下标

# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...

python报错No module named ‘tensorflow.keras‘

是由于不同版本的tensorflow下的keras所在的路径不同,结合所安装的tensorflow的目录结构修改from语句即可。 原语句: from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后: from tensorflow.python.keras.lay…...

【分享】推荐一些办公小工具

1、PDF 在线转换 https://smallpdf.com/cn/pdf-tools 推荐理由:大部分的转换软件需要收费,要么功能不齐全,而开会员又用不了几次浪费钱,借用别人的又不安全。 这个网站它不需要登录或下载安装。而且提供的免费功能就能满足日常…...

莫兰迪高级灰总结计划简约商务通用PPT模版

莫兰迪高级灰总结计划简约商务通用PPT模版,莫兰迪调色板清新简约工作汇报PPT模版,莫兰迪时尚风极简设计PPT模版,大学生毕业论文答辩PPT模版,莫兰迪配色总结计划简约商务通用PPT模版,莫兰迪商务汇报PPT模版,…...

【LeetCode】算法详解#6 ---除自身以外数组的乘积

1.题目介绍 给定一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法,且在 O…...