震惊!1MB == 1000KB??
稍微对电脑了解一点的同学可能都知道,电脑中的单位换算是:
1KB = 1024B
1MB = 1024KB
1GB = 1024MB
...
以前,我也是这么认为的....
最近我在Linux解压某个文件的时候,发现了一个奇怪的单位 MiB 。为啥是MiB,而不是MB呢?立刻百度了一下,说是MiB用来表示计算机二进制单位换算,所以 1MiB = 1024KiB .....
啥?难不成MB 和 MiB 是一样的吗,那为啥还在MB中间搞一个撇脚的'i',直接都用MB不好吗?又经过了一顿百度谷歌维基后,总算是了解了一个大概:
其实,在国际单位制(SI)中,早在1960年就已规定好了倍数的表示:
(摘自WikiPedia)
而从硬盘诞生之初,硬盘制作商们就严格按照SI标准,采用十进制表示倍数,直至现在。十进制的表示似乎对硬盘制作没有太大的影响,但对软件开发来说,实在是太不方便了。计算机中的数据是以二进制形式存在的,在程序对位操作的时候,用十进制单位,难以凑整,这着实逼急了强迫症的程序员们。于是,一些”任性“的程序员们,就把单位进制给改了,改成了方便DeBug的二进制换算。这里的问题在于,改了单位换算,却没有换名字!
于是,就有了这样的说法——“计算机是二进制换算的,所以不是1000进位,而是1024进位。”同一单位在不同情况下有不同定义,这不免会产生混淆。在计算机发展之初,存储容量还很小,就算是只用字节(Byte)这样小的单位,也不会出现特别大的数字,单位换算在起初问题还不足以引起人们的重视。后来,在“摩尔定律”的加持下,计算机发生了突飞猛进的变化,单位换算混淆问题日益严重。
到了1998年,国际电工委员会(IEC)才定义了一种新的带有 二进制前缀的单位,Gibibyte(Giga binary byte)或GiB就是其中一个,它总算是解决了计算机二进制单位与国际单位制在命名上的冲突。

(摘自WikiPedia)
那么问题来了,为什么到现在为止,仍有许多人认为1GB = 1024MB呢?

那是因为,微软并没有在世界上最流行的PC操作系统Windows上根据标准进行修正!直到现在,在最新版的Windows 10中,也没有做任何变化。哪怕微软在2001年发布的Windows XP上修正了这个问题,也不会让大家形成这样的错误认知。真是苦了存储硬件制造商这么多年背的黑锅。

PS:
据我了解,现在只有Windows会错用单位,MacOS和Linux都没有这个问题。
在网络技术中,通常用比特(bit)而不是字节(byte)为单位,网络运营商(ISP)宣传的百兆光纤,一般指的是100Mb(百兆比特)每秒,对应1比特=1字节,相当于12MB(12兆字节)每秒。其中,大写的B表示字节,小写的b表示比特。
震惊!1MB == 1000KB??的更多相关文章
- Python学习笔记3-字符串
格式化字符串/复合字段名 >>> import humansize >>> si_suffixes = humansize.SUFFIXES[1000] >& ...
- python3随记——字符编码
1.1什么是字节 字节(Byte)是计算机信息技术用于计量存储容量的一种计量单位,也表示一些计算机编程语言中的数据类型和语言字符. 比特(bit)在计算机中最小的单位,在二进制位的电脑的系统中,每一b ...
- Book-编程珠玑-第一章
第一章...二〇一六年十月二十五日 22:41:45 1MB存储空间里大约可以存143,000个号码; 如果每个号码都使用32位整数来表示的话,1MB存储空间里就可以存储250,000个号码; 看得迷 ...
- 关于1Byte 1K 1M 1G(换算)
1个字节等于8位二进制 .... 1byte=8bit 1K = 1024 byte =1024byte*8b 说白一点就是 1M等于1024个K组成,而1K又等于1024B,所以1M等于1024K乘 ...
- Http状态码301和302概念简单区别
1.什么是301重定向? 301重定向/跳转一般,表示本网页永久性转移到另一个地址. 301是永久性转移(Permanently Moved),SEO常用的招式,会把旧页面的PR等信息转移到新页面: ...
- linux查看硬件信息的命令(图文)
发布:脚本学堂/Linux命令 编辑:JB02 2013-12-23 21:48:18 [大 中 小] 转自:http://www.jbxue.com/LINUXjishu/14996.htm ...
- 关于手机"内存"的解答
关于手机"内存"的解答 内存小/少 手机内存在手机出厂的时候就已经固定了,其总量无法调整,不能像电脑一样加内存条.所以想提升可用内存,除了经常清理系统,或者把不是必须的应用移到SD ...
- 【树莓派】制作树莓派最小镜像:img裁剪瘦身
制作树莓派镜像,可以参考这篇文章:http://blog.csdn.net/talkxin/article/details/50456282 摘录部分要点内容如下(如果作者不允许转载,请联系即删除): ...
- TCP/IP(一)之初识计算机网络
前言 在一段时间里,都很想知道一台电脑怎么跟另一台电脑通信的,我发送一个qq给女朋友,怎么准确的发送过去的,又是怎么接受消息的. 接下来一段时间给大家慢慢分享关于计算机网络的相关知识. 一.局域网.广 ...
随机推荐
- ElasticSearch实践系列(一):安装
Elasticsearch简介 Elasticsearch是一个高度可扩展的开源全文搜索和分析引擎.它允许您快速,近实时地存储,搜索和分析大量数据.它通常用作底层引擎/技术,为具有复杂搜索功能和要求的 ...
- C# 全屏坐标及区域坐标获取。自定义光标及系统光标描边捕捉显示。
最近手头工作比较轻松了一点就继续研究和完善之前的录屏软件,使用AForge最大的问题在于:最原始的只能够录全屏,而自定义的录屏需要更改非常多的细节:like follows: 1.需要支持区域化录屏: ...
- spring boot 在不同环境下读取不同配置文件的一种方式
在工程中,通常有根据不同的环境读取不同配置文件的需求,对于spring boot 来说,默认读取的是application.yml 或者 application.properties.为了区分不同的环 ...
- mysql 多主
原理:多个msyql/mariadb之间可以实时同步,任意节点的操作可以立即同步到其他节点,底层采用galera插件同步,类似rsync,上层mysql相对于galera是透明的,可以实现多节点同时读 ...
- 时间复杂度O(n^2)和O(nlog n)差距有多大?
0. 时间复杂度 接触到算法的小伙伴们都会知道时间复杂度(Time Complexity)的概念,这里先放出(渐进)时间复杂度的定义: 假设问题规模是\(n\),算法中基本操作重复执行的次数是\(n\ ...
- GlusterFS分布式存储集群部署记录-相关补充
接着上一篇Centos7下GlusterFS分布式存储集群环境部署记录文档,继续做一些补充记录,希望能加深对GlusterFS存储操作的理解和熟悉度. ======================== ...
- Python_每日习题_0001_数字组合
# Topic: There are four digits: 1, 2, 3 and 4. # How many different three digits can be formed witho ...
- js方法中拼接html时点击事件中拼接字符串参数
1,代码 var html = '<a href="#" onclick="tableDelete(\''+ row.labelid +'\')"> ...
- RedisDump安装报错
环境:win10 首先安装 Ruby 安装好后,使用命令行 gem install redis-dump 在安装过程中始终报错,意思是无法使用make命令 然后安装make 参考教程: http:// ...
- vue 单文件 样式写了scoped 不能覆盖框架原有样式的解决办法
vue 单文件 样式写了scoped 不能覆盖框架原有样式的解决办法 在vue 里面<style scoped></style> 是为了让样式只影响本身自己组件的样式,不改变全 ...