【读书笔记】《编码:隐匿在计算机软硬件背后的语言》01 逻辑与开关

【读书笔记】《编码:隐匿在计算机软硬件背后的语言》01 逻辑与开关

  • 前言
  • 01 逻辑与开关

前言

  我是一名光学工程专业研二的学生,目前正处于找工作的阶段,根据往年师兄师姐找工作的情况,在西安这个城市不出意外我能找到的应该就是嵌入式岗位了,所以我开始想办法提升自己在这方面的知识水平,以此来应对八九月份的秋招。本科阶段我学过模电、数电、微机原理、单片机等基础课,但本科阶段懂得都懂,只要不挂科就行,所以对嵌入式这方面的知识也只停留在表面,比如问我什么是CPU、寄存器等等和计算机相关的问题,我一时半会儿还真的回答不上来。
  于是,我开始学习计算机相关的知识,在机缘巧合下我读到了这本书,这本书没有晦涩难懂的专业术语,作者用丰富的想象和清晰的语言表达将计算机的发展过程和原理一步步展现在我的面前,通过通俗易懂的方式,从基础的编码概念逐步深入到计算机的软硬件原理,这让我在阅读过程中逐渐把本科阶段乃至高中物理学到的一些知识串联在一起,让我受益匪浅,所以我忍不住想记录一下里面引发我思考的精彩内容,这也算是我做的一个读书笔记,让我以后也能方便直观的回顾。

01 逻辑与开关

  前几章通过摩斯电码、布莱叶盲文、继电器等实例,引入了二进制数和用继电器充当开关的概念,即二进制数1和0分别对应开关的打开和关闭的状态。这里我们就不写前几章的内容了,主要写让我觉得好玩的部分。
  这一部分作者先引入了布尔代数的知识:通常用字母来表示具体的物体(类/集合),然后对这些具体的类进行逻辑运算。

  举个例子:
  我们可以用M代表公猫,F代表母猫,T可以代表褐色的猫,B可以代表黑猫,W代表白猫,O代表不在T、B或W集合中的其他颜色的猫,字母N来表示已被绝育的猫,字母U表示未被绝育的猫。这些字母用来表示有特定特征的猫的群体。

  布尔代数中,有时用符号“∪”(并集)和“∩”(交集)来代替“+”和“×”(在概率论中我也学过)。这里我们能复习一个知识就是“或”(or)=并 (+)、“和”(and)=交(×)
  显然通过 M + F = T + B + W + O = N + U = 1 M+F=T+B+W+O=N+U=1 M+F=T+B+W+O=N+U=1可以表示所有猫的集合。

  特别注意的是:传统代数的交换律、结合律和分配律在布尔代数中同样成立。而且在布尔代数中,加法还可以来分配乘法,但在传统的代数中,这是不成立的:
W + ( B × F ) = ( W + B ) × ( W + F ) W+(B×F)=(W+B)×(W+F) W+(B×F)=(W+B)×(W+F)
白猫和黑色母猫的并集=白猫和黑猫的并集和白猫和母猫的并集。


  如果我们去宠物店买猫,要求:“一只公猫,已绝育的,白色或褐色都可以,或者一只母猫,也要是已绝育的,除了白色任何颜色都可以;或者,只要是黑猫“就可以用以下公式表示:

( M × N × ( W + T ) ) + ( F × N × ( 1 − W ) ) + B (M×N×(W+T))+(F×N×(1-W))+B (M×N×(W+T))+(F×N×(1W))+B

  用公式表达的好处是,我们就可以做一个布尔测试了。为了避免麻烦,这里,字母可以用数字来赋值。我们只用数字0和1。数字1代表YES, True,即这只猫是符合这样的标准的。数字0表示NO, False,即这只猫不符合这种特定标准。

  如果店员拿了一只未绝育的褐色公猫,替换后的公式: ( 1 × 0 × ( 0 + 1 ) ) + ( 0 × 0 × ( 1 − 0 ) ) + 0 = 0 (1×0×(0+1))+(0×0×(1-0))+0=0 (1×0×(0+1))+(0×0×(10))+0=0,因此这只猫不符合要求。
  店员随后拿出了一只已绝育的灰色母猫,替换后的公式: ( 0 × 1 × ( 0 + 0 ) + ( 1 × 1 × ( 1 − 0 ) ) + 0 = 1 (0×1×(0+0)+(1×1×(1-0))+0=1 (0×1×(0+0)+(1×1×(10))+0=1,这说明这只小猫符合咱们的要求可以带回家了!

  值得注意的是,我们刚刚的一系列做法把我们的抽象文字用具体的公式和数字表达出来了,但这样做每次我们还需要代入数字0和1计算最终结果,还是不够直观。

  有没有什么方法可以直观展示结果呢?
  这时我们突发奇想,是否可以通过连通开关和灯泡的方法来确定某类猫咪是否符合我们的标准呢?


  让我们尝试设计一个帮助顾客挑选心仪猫咪的电路吧!
  在初中物理课,我们学过串联电路和并联电路,我们可以说0代表“开关断开”​,1代表“开关闭合”​,一个灯泡有两种状态,0代表“灯泡不亮”​,1代表“灯泡亮”​。我们可以用真值表表示灯泡的亮灭与开关的关系。

  两个开关串联相当于布尔代数中的AND运算。
在这里插入图片描述
  两个开关并联相当于布尔代数中的OR运算。
在这里插入图片描述

结合上面初中的物理知识(“和”(and)=交(×)=串联、“或”(or)=并 (+)=并联),如下图所示,刚刚我们对于猫咪的要求就可以用电源、开关和灯泡来做一个电路了:

“一只公猫,已绝育的,白色或褐色都可以,或者一只母猫,也要是已绝育的,除了白色任何颜色都可以;或者,只要是黑猫” ( M × N × ( W + T ) ) + ( F × N × ( 1 − W ) ) + B (M×N×(W+T))+(F×N×(1-W))+B (M×N×(W+T))+(F×N×(1W))+B
在这里插入图片描述
此时如果店员拿出一只已绝育的灰色母猫,我们只需要闭合和打开对应的开关。
在这里插入图片描述
灯泡被成功点亮了,表明这只猫符合顾客的全部要求。

作者在这章最后说到:“然而,在19世纪,没有人将布尔代数中的AND和OR同线路中的开关串联及并联关联到一起”,但我们居然做到了,这也太有趣了!


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

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

相关文章

TXT编码转换工具iconv

iconv.exe是实现TXT编码转换的命令行工具,支持几百种编码格式的转换,利用它可以在自主开发程序上实现TXT文档编码的自动转换。 一、命令参数格式 Usage: iconv [-c] [-s] [-f fromcode] [-t tocode] [file ...] or: iconv -l 二、转换的示例 将UTF-8…

软考中级数据库备考-上午篇

背景 新工作主要做大数据平台,考一个软考中级数据库系统工程师,补足一下基础知识。 基础知识 1.计算机硬件基础知识 正确答案:C 正确答案:D 正确答案:C 正确答案:BC 正确答案:B 正确答案:D 正确答案:A DMA建立内存与外设的直接…

AtCoder AT_abc405_d ABC405D - Escape Route

前言 BFS 算法在 AtCoder 比赛中还是会考的,因为不常练习导致没想到,不仅错误 TLE 了很多,还影响了心态,3 发罚时后才 AC。 思路 首先,我们把所有位置和出口的距离算出来(用 BFS)&#xff0c…

【计算机视觉】目标检测:yoloV1~yoloV11项目论文及对比

以下是 YOLO (You Only Look Once) 系列模型从 V1 到 V11 的详细介绍和项目地址(截至2024年7月)。YOLO 是目标检测领域的里程碑模型,以其 实时性 和 高精度 著称,广泛应用于自动驾驶、安防监控、工业检测等领域。 YOLOv1 (2016) …

推荐系统架构设计

1.分析用户行为数据​:​ 收集用户的活跃时间、点击行为、浏览历史等数据。​分析用户的活跃模式,确定用户最活跃的时间段。​kafka flink 数据库 分析用户行为并存储 2. 预生成推荐内容​:​ 在用户活跃时间之前,预先生成推荐…

BERT类模型

1. BERT类模型是否需要处理 [CLS] 或池化? 那首先搞懂 [CLS] 和池化 (1)[CLS] 的作用 BERT 的输入格式中,每个序列的开头会添加一个特殊的 [CLS] Token(Classification Token)。它的设计初衷是为分类任务…

我的世界云端服务器具体是指什么?

我的世界云端服务器是指一种基于互联网的多人游戏服务器,将游戏服务器运行在云平台上,而不是在本地计算机中,这使用户不需要考虑自身电脑的性能和网络稳定性,只需要通过网络连接到云端服务器,就可以享受到顺畅的游戏体…

软考(信息系统运行管理员)

第一章 信息系统运维概述 1.1 信息系统概述 信息的含义和类型 信息的含义: 一般:人们关心的事情的消息或知识。香农(信息论创始人):用来减少随机不确定性的东西(标志着信息科学进入定量研究阶段&#xff…

Unity基础学习(九)输入系统全解析:鼠标、键盘与轴控制

目录 一、Input类 1. 鼠标输入 2. 键盘输入 3. 默认轴输入 (1) 基础参数 (2)按键绑定参数 (3)输入响应参数 (4)输入类型与设备参数 (5)不同类型轴的参…

VBA将PDF文档内容逐行写入Excel

VBA是无法直接读取PDF文档的,但结合上期我给大家介绍了PDF转换工具xpdf-tools-4.05,先利用它将PDF文档转换为TXT文档,然后再将TXT的内容写入Excel,这样就间接实现了将PDF文档的内容导入Excel的操作。下面的代码将向大家演示如何实…

Spring Boot之MCP Client开发全介绍

Spring AI MCP(模型上下文协议,Model Context Protocol)客户端启动器为 Spring Boot 应用程序中的 MCP 客户端功能提供了自动配置支持。它支持同步和异步两种客户端实现方式,并提供了多种传输选项。 MCP 客户端启动器提供以下功能: 多客户端实例管理 支持管理多个客户端实…

[题解]2023CCPC黑龙江省赛 - Folder

来源:F.Folder - Codeforces题意:给定由 n ( 1 ≤ n ≤ 1 0 5 ) n(1\le n\le 10^5) n(1≤n≤105)个结点组成的树,每次操作可将一棵子树接到其他结点上。求将树转换为一棵斜树的最小操作次数。关键词:思维(签到)题解:斜…

string[字符串中第一个的唯一字符][蓝桥杯]

使用哈希表解决 class Solution { public:int firstUniqChar(string s) {int arr[26];for(int i0;i<s.size();i){arr[s[i]-a];}for(int i0;i<s.size();i){if(arr[s[i]-a]1)return i;}return -1;} };

【深度学习-Day 8】让数据说话:Python 可视化双雄 Matplotlib 与 Seaborn 教程

Langchain系列文章目录 01-玩转LangChain&#xff1a;从模型调用到Prompt模板与输出解析的完整指南 02-玩转 LangChain Memory 模块&#xff1a;四种记忆类型详解及应用场景全覆盖 03-全面掌握 LangChain&#xff1a;从核心链条构建到动态任务分配的实战指南 04-玩转 LangChai…

Flink 实时数据一致性与 Exactly-Once 语义保障实战

在构建企业级实时数仓的过程中,“数据一致性” 是保障指标准确性的核心能力,尤其是在金融、电商、医疗等对数据敏感度极高的场景中。Flink 作为流批一体的实时计算引擎,其内建的 Exactly-Once 语义为我们提供了强有力的保障机制。本篇将围绕如何实现端到端的数据一致性、如何…

傅利叶十周年,升级核心战略:“有温度”的具身智能蓝图

5月9日&#xff0c;傅利叶十周年庆典暨首届具身智能生态峰会在上海正式召开。本次大会以“十年共创&#xff0c;具身成翼”为主题&#xff0c;汇聚了来自通用机器人与医疗康复领域的顶尖专家学者、合作伙伴与投资机构&#xff0c;共同探索具身智能在未来十年的技术应用与生态发…

Docker中mysql镜像保存与导入

一、Docker中mysql镜像保存 Docker 的 MySQL 镜像保存通常有两种场景&#xff1a;一种是保存镜像本身的修改&#xff08;如配置、初始化数据&#xff09;&#xff0c;另一种是持久化保存容器运行时产生的数据&#xff08;如数据库表、用户数据&#xff09;。以下是具体方法&am…

大模型微调指南之 LLaMA-Factory 篇:一键启动LLaMA系列模型高效微调

文章目录 一、简介二、如何安装2.1 安装2.2 校验 三、开始使用3.1 可视化界面3.2 使用命令行3.2.1 模型微调训练3.2.2 模型合并3.2.3 模型推理3.2.4 模型评估 四、高级功能4.1 分布训练4.2 DeepSpeed4.2.1 单机多卡4.2.2 多机多卡 五、日志分析 一、简介 LLaMA-Factory 是一个…

记录一次window2012r2安装配置oracle11g的过程-出现的错误以及解决方法

Windows server 2012R2安装Oracle11g 出现的错误 同事反馈正常安装oracle后&#xff0c; 使用命令行 sqlplus sys / as sysdba出现“ORA-12560:TNS:协议适配器错误”。 去services.msc服务状态里面 OracleOraDb11g_home1TNSListener服务停止状态&#xff0c;而且无法启动。 …

2003-2020年高铁线路信息数据

2003-2020年高铁线路信息数据 1、时间&#xff1a;2003-2020年 2、来源&#xff1a;Chinese High-speed Rail and Airline Database&#xff0c;CRAD 3、指标&#xff1a;高铁线路名称、起点名、终点名、开通时间、线路长度(km)、设计速度(km/h&#xff09;、沿途主要车站 …