500G 硬盘为何缺斤少两百兆宽带的下载速度为何只有10 兆8G 内存只能使用 4个G的背后又隐藏着什么?是人性的扭曲还是道德的沦丧?敬请关注本期《走近技术》10.24 特别节目:1024 引发的迷案

不过在讲有关 1024 的故事之前,我们先来聊一聊“二进制”的起源。

通常我们用的都是“十进制”,也就是每一位有10个数到10的时候会升位。所以二进制就是每一位只有2个数(0和1),到2就会升位,原本的

1, 2, 3, 4, 5……

就变成:

1, 10, 11, 100, 101……

现代的二进制记数系统是由莱布尼茨于1679年设计的。有种说法:莱布尼茨是解读了易经中的卦象,并从中获得了部分灵感。

八卦图 来源:百度百科 https://baike.baidu.com/item/%E5%85%AB%E5%8D%A6/166475

不管这个说法是否靠谱,但八卦确实可以用一种二进制的思想来理解:只用阳爻(连着)阴爻(断开)两种状态,三个位,就表示出8种不同的状态

之后,乔治·布尔(就是 Python 中bool值的那个布尔)设计了一种现在叫做布尔代数的逻辑系统。而香农,则用一篇论文讲述了怎么用继电器和开关实现二进制算术运算,理论和实际就这样被联系了起来。再后来,一堆牛人在此基础上捣鼓出计算机,二进制这一种计数方法也随着计算机的发明而大放异彩。

那么,二进制和 1024 有什么关系呢

计算机中最小的二进制单位称作比特Bit,简写为 b),只有两个值:01,它也可以用来代表一个晶体管的通断,或者某根导线上电压的有无。

而8个比特就组成了一个字节Byte,简写为 B),一个比特有 0 或者 1 这两种可能,所以一个字节(8 个比特)就包括了2^8 = 256(2的8次方)种组合。

不知道大家有没有遇到过网速特别慢的情况,网速可能只有几百B,这就是说每秒钟传输的数据只有几百字节。

那如果网速很快,每秒钟能够传输的字节很多,该怎么表示呢?在后面加很多0肯定不太方便。按照国际单位制 (SI) 的方法,逢千进位,1个千字节表示为1000字节,单位符号记为KB,即:1 KB = 1 000 B

依次类推:

1 MB = 1 000 KB = 1 000^2 B

1 GB = 1 000 MB = 1 000^2 KB = 1000^3 B

但是别忘了,我们前面说了,计算机是二进制的啊,所以还是以一个2的次方数来定义“千”更加方便点。为什么这么说?

如果我们在计算机中表示 1000,就是1111101000,按通常的千进位就是1 KB = 1111101000 B,这看上去好像不太合适。后来大家发现,1024 这个数很好,它是2的次方数(2^10),同时 1024 和 1000 又很接近,误差只有 2.4%。如果改用 1024 来代替 1000,1 KB = 10000000000 B,这下看起来就舒服多了!而且在底层计算时也会减少操作次数。

所以,用 1024 来代替 1000 进位,即 1 KB = 1024 B。这样既方便又实用。

像早期的16位计算机,它的地址线是16位,也就是说它的CPU可以处理16位的二进制数。所以它可表示的内存范围就是0000000000000000~1111111111111111,也就是0~65535

早期的 16 位计算机 来源:Quora https://www.quora.com/Why-are-there-1024-bytes-in-a-kilobyte/answer/Steven-de-Rooij

至于为什么有的系统只支持最大 4G 内存呢?就是因为这些系统是32位的操作系统,内存寻址的最大范围就是2的32次方,即4 * 1024^3也就是4G,内存中大于 4G 的部分没法被 CPU 访问到,即使你插上8G的内存条也没用。

到了现在,我们有了两种进位方式:1000 和 1024。为了防止混用 ,国际电工委员会(IEC)还提出了一套标准,规定在计算机领域使用 1024 进位的时候,不要写成 1 KB = 1024 B,而应该写成:

1 KiB = 1 024 B

1 MiB = 1 024 KiB

1 GiB = 1 024 MiB

然而并没有什么用,大家现在基本还是我行我素。

讲了这么多,可是这和500G 的硬盘缺斤少两有什么关系呢?

其实,这都是因为在硬盘销售时和计算机读取时用的换算单位不同所导致的。

在销售硬盘时,都是采用 1 000 来进位的,这样,一个 500G 的硬盘就是:500 G = 500 * 1 000 * 1 000 * 1 000 Byte = 500 * 1 000^3 Byte

但是,对于计算机来说:500 * 1 000^3 Byte = 500 * 1 000^3 / 1024^3 G = 465 G

这样看来,越大的硬盘会损失的越多。你新买的500G硬盘存不下你收集的500G电影。 ‍♂️

最后,我们再来看看另一个未解之谜,为什么百兆宽带的下载速度最多只有10 兆左右

这个虽不是因为二进制,但也和单位有关:

在网络通信,传输数据的时候,需要将要传输的内容转换为电信号,再通过电缆传输出去,实际通过电缆的是高低电压的电流。也可以将传输内容转换为光信号,那么,传输介质就变成了光纤,通过光纤的是或明或暗的(不同相位的)光线。

仔细想想,这其实就是传输了一个个的比特啊,所以,数据通信中是以 比特 作为单位的,也就是通常说的小b。而我们在使用电脑时看到的速度都是以字节作为单位,也就是大B。运营商宣传的百兆宽带,其实是百兆 bit/s,1 Byte = 8 bit,换算一下就发现,100 M Bit/s = 12.5 M Byte/s。所以百兆宽带的理论最大网速就是12.5 M/s。考虑传输过程中的损耗等原因,实际网速也不可能达到理论值,所以实际网速肯定是小于 12.5 M/s 的。

至于为什么硬盘制造商要用 1000 而不是 1024,电信运营商要用 bit 而不用 Byte,那我就不知道他们了。难道就是因为卖的时候看起来更多一些?

好了,今天的 1024 特别节目到这里就结束了,现在你可以拿着这些问题去考考你的小伙伴了。

最后给大家讲个笑话:

齐大圣:Crossin,最近我手头有点紧,能借1000块救个急吗?
Crossin:可以啊,给你凑个整吧!
(收到转账 1024 元)

----

更多实用和有趣的内容,欢迎搜索并关注:Crossin的编程教室

一起学,走得远!

有关1024的冷知识相关推荐

  1. Java 15 年老兵都不一定了解的冷知识!

    你知道的越多,不知道的就越多,业余的像一棵小草! 成功路上并不拥挤,因为坚持的人不多. 编辑:业余草 推荐:https://www.xttblog.com/?p=5251 Java 15 年老兵都不一 ...

  2. 120个IT冷知识,看完就不愁做选择题了

    目录 IT冷知识 01-10 1.冰淇淋馅料 2.蠕虫起源 3.Linux和红帽子 4."间谍软件"诞生 5.游戏主机的灵魂 6.Linux之父 7.NetBSD的口号 8.安卓起 ...

  3. 链式比较、奇怪的字母、有趣的import...Python冷知识(六)

    本文转载自Python编程时光(ID:Python-Time) 冷知识系列,已经更新至第六篇. 谈谈 Python 那些不为人知的冷知识(一) 谈谈 Python 那些不为人知的冷知识(二) 谈谈 P ...

  4. 空字符串计数、让字典可排序...Python冷知识(五)

    本文转载自Python编程时光(ID: Python-Time) 冷知识系列,直至今日,已经更新至第五篇.前四篇给你准备好了,还没阅读的可以学习一下. 谈谈 Python 那些不为人知的冷知识(一) ...

  5. 反转字符串/列表、改变递归次数限制、else用法...Python 冷知识(四)

    本文转载自Python编程时光(ID:Python-Time) 冷知识系列,已经更新至第四篇.前三篇传送门在此,还没阅读的可以学习一下. 谈谈 Python 那些不为人知的冷知识(一) 谈谈 Pyth ...

  6. for死循环、怪异字符串、两次return……Python冷知识(三)

    本文转载自Python编程时光(ID:Python-Time) 冷知识系列,已经更新至第三篇.前两篇传送门小明给你准备好了,还没阅读的可以学习一下. 谈谈 Python 那些不为人知的冷知识(一) 谈 ...

  7. 谈谈Python那些不为人知的冷知识(二)

    本文转载自Python的编程时光(ID:Python-Time) 小明在日常Code中遇到一些好玩,冷门的事情,通常都会记录下来. 从上一篇的分享来看,仍然有不少 Pythoner 对这些冷知识存在盲 ...

  8. 世界上最大的黑客 Party,有关“DEFCON”的十个冷知识

    如果你对世界上的某些事情并不满意,并且决定用一切可能的方式来达成你的目标.恭喜你,你正在成为一名黑客. 全世界那些敢于对不可能竖中指的黑客,每年都会聚集在罪恶之都拉斯维加斯,参加一个盛大 Party ...

  9. cuda合并访问的要求_CUDA优化的冷知识 5 | 似是而非的计时方法

    这一系列文章面向CUDA开发者来解读<CUDA C Best Practices Guide> (CUDA C最佳实践指南) 大家可以访问: https://docs.nvidia.com ...

最新文章

  1. 在 iOS 应用中实现飞行模式提醒
  2. [转载]一个Spectral Clustering方法的小结
  3. Hadoop Map/Reduce教程
  4. Perl学习笔记(六)--文件(一)
  5. 【hihocoder - offer编程练习赛60 C】路径包含问题(LCA,树上倍增)
  6. Django中--自定义模型管理器类
  7. 自我介绍(老师作业,大神自行忽略)
  8. 【转】vb 关于commondialog的多选
  9. 测试面试必问点【干货】建议收藏!!
  10. python求众数程序_求众数(python实现)
  11. 标记偏置 隐马尔科夫 最大熵马尔科夫 HMM MEMM
  12. 碎阅:一款基于douban及ONE API开发的资讯类App
  13. Word转图片的方法(两种)
  14. nginx实现https与http共存方案
  15. 微信公众号申请最新流程
  16. 首届青年统计学家论坛 | 小微金融与个人征信专场
  17. 四百左右音质好的蓝牙耳机有哪些?2023公认音质最好的蓝牙耳机排行
  18. 苹果切换系统按哪个键_苹果全新笔记本 一体机正品专区
  19. SQL查询语句注入实战(手注,显注)
  20. IPGuard启动加密常用的策略

热门文章

  1. java实现日报表、月报表统计,没数据补0
  2. 3D检测入门 - KITTI数据集
  3. eNSP网络构建—建立小型局域网
  4. 上周热点回顾(4.20-4.26)
  5. 【小迪安全day04】WEB 源码拓展--web源码目录、脚本类型、应用分类、cms识别
  6. 安踏发布中国代表团东京奥运“冠军龙服”;宇通自动驾驶巴士已投入规模化运营 | 美通社头条...
  7. 3D建模真的这么赚钱?副业收入2万,只要喜欢就能做
  8. 工作效率咋提升?还得看这几款可以做思维导图的软件
  9. 云计算技术与实践年度盛会 2016中国云计算技术大会在京开幕
  10. 【交换变量】三种交换变量的方式:中间变量法,加减法,异或运算法