第三章:计算机的数据表示

news/2025/2/23 21:44:47/文章来源:https://www.cnblogs.com/TinySnowBlog/p/18715106

复习

  1. 第一章:需要一台计算机,在研究其组成的方向上进行努力
  2. 第二章:知道了计算机由输入设备、存储器、运算器和输出设备组成,这个体系目前还在沿用,现在该探究计算机怎样表示数据了

TL;DR

  • 计算机使用二进制(0 和 1)表示所有数据,每一个 0 或 1 都是一个二进制位
  • 为了表示简洁和方便,采用八进制或十六进制,后二者本质还是把三个或者四个二进制位揉到了一起,用一个新符号表示
  • 更大的单位:KB,MB,GB,TB,PB,EB,ZB

正文

  在了解了计算机的组成之后,我们需要思考一个关键问题:计算机如何表示和处理各种数据?

数据表示

  回想一下,我们目前打算设计的计算机使用电能。而电子元件最容易实现两种状态:通电(1)和断电(0)。

  这天然就是 2 种状态。

  我们目前使用十进制,因为我们的手指和脚趾刚好各有 10 个,有 10 个状态,逢 10 进 1。玛雅人采用 20 进制;有些单位(一打)使用 12 进制。

  那么可不可以设计出一种二进制,只有 2 个状态:0 和 1,逢 2 进 1?

  • 十进制:0、1、2、3、4、5、6、7、8、9
  • 二进制:0、1

  十进制的计算方式能不能套用到二进制身上呢?

  • 十进制的 13:13 = 13₁₀ = 1×10¹ + 3×10⁰(右下角的 10 表示采用十进制)
  • 二进制的 13:13 = 1101₂ = 1×2³ + 1×2² + 0×2¹ + 1×2⁰(右下角的 2 表示采用二进制)

  似乎可以,我们可以试试把二进制和十进制的 0-9 一一对应起来:

二进制 十进制 二进制 十进制
0000 0 0101 5
0001 1 0110 6
0010 2 0111 7
0011 3 1000 8
0100 4 1001 9

  要表示更大的数字时,像十进制一样往上叠位数就好了。只是因为二进制只有 2 个数字,而十进制有 10 个数字,所以二进制表示相同的值时,位数要更多一些。

相关约定

  为了方便计算机学界交流,这些有专业术语:

  • 1 个二进制的 0 或 1 称为 bit,比特,用 b 表示
  • 8 个二进制的 0 或 1 成为 Byte,字节,用 B 表示
    • 8 是人为规定的,二进制表示一个数据会非常长,表示 0-9 都需要 4 个 bit
  • 16 个 bit 为 Halfword,半字,用 H 表示(字和半字的概念以后会讲)
  • 32 个 bit 为 Word,字,用 W 表示(字和半字的概念以后会讲)

  二进制太长,不方便阅读,人们又将 3 个或 4 个 bit 揉在一起,分别形成八进制和十六进制。

  十六进制(Hexadecimal,简称 Hex):

  • 采用符号(16 个):0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f
  • 表示方法:前缀(0x / 0X)+ 值,或者 值 + 后缀(h / H)
  • 0x00X00h0H

  八进制(Octal,简称 Oct):

  • 采用符号(8 个):0, 1, 2, 3, 4, 5, 6, 7
  • 表示方法:前缀(0o / 0O)+ 值,或者 值 + 后缀(o / O)
  • 0o00O00o0O

  二进制(Binary,简称 Bin)其实也有相应的表示方法,同上:

  • 采用符号(2 个):0, 1
  • 表示方法:前缀(0b / 0B)+ 值,或者 值 + 后缀(b / B)
  • 0b00B00b0B

  十进制(Decimal,简称 Dec)不加任何前后缀。

  下面是对照表(需要表示的值以十进制表示):

十进制值 二进制 八进制 十六进制
0 0b0000 或 0000b 0o00 或 00o 0x0 或 0h
1 0b0001 或 0001b 0o01 或 01o 0x1 或 1h
2 0b0010 或 0010b 0o02 或 02o 0x2 或 2h
3 0b0011 或 0011b 0o03 或 03o 0x3 或 3h
4 0b0100 或 0100b 0o04 或 04o 0x4 或 4h
5 0b0101 或 0101b 0o05 或 05o 0x5 或 5h
6 0b0110 或 0110b 0o06 或 06o 0x6 或 6h
7 0b0111 或 0111b 0o07 或 07o 0x7 或 7h
8 0b1000 或 1000b 0o10 或 10o 0x8 或 8h
9 0b1001 或 1001b 0o11 或 11o 0x9 或 9h
10 0b1010 或 1010b 0o12 或 12o 0xA 或 Ah
11 0b1011 或 1011b 0o13 或 13o 0xB 或 Bh
12 0b1100 或 1100b 0o14 或 14o 0xC 或 Ch
13 0b1101 或 1101b 0o15 或 15o 0xD 或 Dh
14 0b1110 或 1110b 0o16 或 16o 0xE 或 Eh
15 0b1111 或 1111b 0o17 或 17o 0xF 或 Fh

数据大小单位

  在计算机中,数据大小的单位遵循二进制的特点:

  • 1 KB (Kilobyte) = 1024 B = 2¹⁰ B
  • 1 MB (Megabyte) = 1024 KB = 2²⁰ B
  • 1 GB (Gigabyte) = 1024 MB = 2³⁰ B
  • 1 TB (Terabyte) = 1024 GB = 2⁴⁰ B

  注意:这里的 1024(2¹⁰)而不是 1000(10³)是因为计算机使用二进制。

  有趣的是,所有存储厂商使用和标注的 1 KB 并不是 1024 B,而是 1000 B,其他 MB 等单位同理。所以每个厂商标注 1 TB 或者 256 GB 等存储单位的硬盘容量,实际上比计算机认为的 1 TB 或 256 GB 要小一些。所以硬盘插上电脑之后,操作系统识别出来的硬盘容量总会比厂商标注的容量要小一些。这不是偷工减料,而是底数不相同。

特别注意

  说了这么多进制可能有点晕。其实主要只有十进制与二进制。

  八进制和十六进制其底层还是二进制,因为目前只有通电或断电两种状态。 使用是否通电理解二进制并不严谨,但于初学者而言容易理解且偏差不大(苏联曾经诞生过三进制计算机,但由于各种原因,并没有取代二进制成为现代计算机的基础)。

  • 1 个八进制可以拆成 3 个二进制位,因为 8 = 2³
  • 1 个十六进制可以拆成 4 个二进制位,因为 16 = 2⁴

  只是因为 1101₂ 看起来不如 15₈ 和 D₁₆ 简洁(右下角表示进制),其中十六进制最简洁,只用 D 表示就可以了。

  注意:上面的符号 A-F 只是人们的约定俗成,其实完全可以用其他符号表示。而至于怎样真正表示 字母形式的 A-F ,以后再说。

二进制的重要性

  计算机采用二进制(0 和 1)表示数据有几个重要原因:

  1. 硬件实现简单:电路的开和关、高电平和低电平可以直接对应 1 和 0
  2. 运算规则简单:二进制的运算规则比十进制简单得多
  3. 可靠性高:区分两种状态比区分多种状态更稳定可靠

思考题

  如果未来发生了一场能源革命,发现一种新能源:另能。另能激活时,有 A、B、C 三种不同的形态,均可导通另路(类似电路)。

  那么计算机是否会发生革命?如果你是另能计算机设计者,会采用几进制?

  最后,冯·诺伊曼体系结构是否会随着技术发展而打破?

小结

知识点

  • 二进制
  • 八进制
  • 十六进制
  • 数据大小单位

参考资料

  1. Wikipedia(zh):二进制:计算机中的数据表示基础
  2. 进制转换计算器
  3. ISO/IEC 80000-13:2008:信息技术中的量和单位
  4. 《编码:隐匿在计算机软硬件背后的语言》
  5. 《深入理解计算机系统》第 2 章:信息的表示和处理
  6. Wikipedia(zh):Сетунь:苏联诞生的三进制计算机。

思考题答案(仅供参考)

  1. 会。因为元符号数量从 2 个增长为 4 个。
  2. 4 进制。未导通态 1 个加上导通态 3 个,共 4 个。可以表示为 0-3,此时每 1 位(四进制)可以表示 2 个比特位(二进制)。
  3. 科学和技术一直在进步。假设,某一天技术强大到所有输入和输出均可一个设备完成,则该体系也会随之淘汰。

协议

  本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。

封面图

设计师 | 南国微雪
本文由博客一文多发平台 OpenWrite 发布!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/883663.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【蔚蓝星球的节日】世界海洋日的探索与海洋的重要性

在浩瀚无垠的蓝色星球上,海洋占据了地球表面的大部分,它是生命的摇篮,气候的调节器,也是全球经济和文化交流的纽带。为了纪念海洋的无尽恩赐,并唤起全人类对海洋保护的意识,联合国自2009年起将每年的6月8日定为“世界海洋日”。本文将带您追溯世界海洋日的由来,探讨其与…

Java轻量级代码工程

生存压力下,做项目时间和成本是最重视的维度,抛开什么AI和各种工具加持,节省编程时间最有效的办法就是:拿现成的,最好只改个端口号。一、背景简介 最近2年,很多公司接项目开始不挑剔了,只要核算下来有收益不会亏,就会库库的做各种没头没脑的项目,都是抱着多撑一天是一…

CTF-Web培训章节-社会工程学

目录 1、Web应用信息泄露 2、Web应用权限安全 3、社会工程学 4、总结 社会工程学 社会工程学是一种结合开源情报搜集进行人性攻击的一种网络攻击手段,综合运用信息搜集、语言技巧、心理陷阱等多种手段,完成欺骗的目的。社会工程学采用的技术手段可分为以下几种:社工库收集、…

火了整个春节的DeepSeek,他对AI产品的意义到底是什么?

https://www.cnblogs.com/yexiaochai/p/18699686相信春节期间各位的朋友圈一定被DeepSeek“轰炸”了,就算是普通人也获得了一些信息:国内AI取得了巨大突破。 但DeepSeek这次突破到底对一般的互联网从业者有什么帮助,绝大多数人却是一头雾水。 究其原因:Attention is All Yo…

使用JSXGraph进行平面二连杆机构动力学仿真

对于自由运动的机器人来说,其控制器设计可以按是否考虑机器人动力学特性分为两类。一类是完全不考虑动力学特性,只是按照机器人实际轨迹与期望轨迹间的偏差进行负反馈控制。这类方法通常被称为“运动控制(Kinematic Contorl)”,其中的控制器常采用PD或PID控制。运动控制的…

【探秘海洋伤痕】海洋环境污染损害的警世启示

在地球这个蓝色星球上,广袤无垠的海洋孕育了无数生命,支撑着地球的生态平衡与人类的生存发展。然而,随着工业化和现代化的加速,海洋环境遭受的伤害日益严重,海洋环境污染损害成为了我们必须直面的严峻问题。本文将带您深入理解何为海洋环境污染损害,揭示其背后的严峻现实…

Axurecloud 私有云破解(Axure Cloud for Business On-Premises)Axurecloud本地服务器

本文探讨了Axurecloud私有云的优势,包括快速访问、无资源限制、用户管理及数据安全性,以及为何需要破解国外服务器的限制。同时提供了从安装到破解的详细步骤,以及如何在AxureRP中连接私有云的指导。2025年2月13日更新最近有小伙伴联系我,说官方提供的Axurecloud不支持axur…

Axurecloud私有云破解(Axure Cloud for Business On-Premises)Axurecloud本地服务器

本文探讨了Axurecloud私有云的优势,包括快速访问、无资源限制、用户管理及数据安全性,以及为何需要破解国外服务器的限制。同时提供了从安装到破解的详细步骤,以及如何在AxureRP中连接私有云的指导。2025年2月13日更新最近有小伙伴联系我,说官方提供的Axurecloud不支持axur…

缺陷分析方法简介

本文分享自天翼云开发者社区《缺陷分析方法简介》,作者:Miya 一、缺陷分析简介 质量是反应软件与需求相符程度的指标,缺陷则被认为是软件与需求不一致的某种表现。因此通过对测试过程中所有已发现的缺陷进行分析和评估,可以更加清楚地了解软件的质量状况,同时可以帮助项目…

ABB IRB6640机器人减速机间隙过大维修方法

ABB IRB6640机器人随着使用时间的增长和工作强度的增加,可能会出现诸如减速机间隙过大等问题。一、ABB IRB6640机器人减速机间隙过大的危害当ABB IRB6640机器人的减速机间隙过大时,首先会影响机器人的运动精度。在工业生产中,精确的操作是保证产品质量的关键,例如在汽车零部…

GPT Assistant training pipeline

当然!这张图片清晰地展示了 GPT Assistant (如 ChatGPT, Claude 等) 的训练流程,我们来深入理解一下其中的知识点: 1. 训练阶段 (Training Stages)预训练 (Pretraining):数据集: 使用从互联网上收集的大量原始文本数据 (数万亿字),包括各种主题、风格和语言。这些数据通常质…

Burp Suite Professional 2025.2 发布,新增功能概览 (领先的 Web 渗透测试软件)

Burp Suite Professional 2025.2 发布,新增功能概览 (领先的 Web 渗透测试软件)Burp Suite Professional 2025.2 (macOS, Linux, Windows) - Web 应用安全、测试和扫描 Burp Suite Professional, Test, find, and exploit vulnerabilities 请访问原文链接:https://sysin.org/…