《编码——隐匿在计算机软硬件背后的语言》精炼——第15-16章(十六进制,RAM)

news2024/10/3 0:28:11

“学习如春起之苗,不见其增,日有所长。” —— 宋代朱熹

文章目录

  • 十六进制
    • 十六进制概述
    • 十六进制表
    • 字节到十六进制
  • 存储器
    • 特定的读功能
    • 特定的写功能
    • RAM
    • 大型RAM阵列

十六进制

十六进制概述

十六进制是一种适用于计算机的进制法。在十进制中,前一位的权重是后一位的十倍,例如288的值是:

288=2* 102+8* 101+8*100

而在十六进制中,前一位的权重是后一位的十六倍。如果要指明这个数是16进制的,可以在后面加h,例如288h表示十六进制的288(初学者可能会弄不明白这里,这里的h仅仅代表这个数是16进制,而不占位)。288h的值是:

288h=2* 162+8* 161+8*160=648(十进制)

十六进制表

请添加图片描述

字节到十六进制

一个字节是八个二进制位,将一个字节四四分开分别转换成十六进制,就完成了到字节表示的八位二进制数到十六进制的转换。举例说明:

  1. 将11011001转换为十六进制。
    在这里插入图片描述
  2. 四四分开这个字节。
    在这里插入图片描述
  3. 分别计算左右的十六进制值。
    在这里插入图片描述
  4. 合并左右的结果,得到最后的结果是B9.

可以验证,等式两边的结果都是185.

总结:对于进制转换来说,只要搞清楚十六进制中每一位权重相差十六倍,十进制、二进制都相似。对于十进制直接参与的进制转换来讲,例如从二进制转换成十进制,则只要除或乘对应的权重就可以;如果不是十进制直接参与的进制转换,例如从二进制转换为十六进制,那么一般以十进制为桥梁进行转换。

存储器

在之前的八位锁存器中,我们已经实现了数据存储的核心功能,但一个完整的存储器还需要特定的读写功能。

我们先回顾一下8位锁存器的结构,也就是8个1位锁存器:
在这里插入图片描述
很显然,在输入端,我们需要实现对特定锁存器的写功能,在输出端则需要实现对特定锁存器的读功能。

特定的读功能

我们先实现相对简单的读功能。读功能是通过8-1选择器来实现的。下面是这个选择器的电路:
在这里插入图片描述
左下角使用三个开关对8个门进行选择,使用了三个二进制位能组成8个不同数的原理。三个控制端和一个数据端连接到与门,在与门中只要三个控制端输入中有一个为0,则输出结果一定为0,因此最后的数据输出只和控制端全1的那个与门所接收的数据端有关。举个例子:

  1. 如果输入端分别为010,则八个与门处的控制端输入分别是101,001,111,011,100,000,110,010;不难看出,只有D2与门的输出端结果取决于数据端,其余的输出都一定为0.
  2. 这八个与门的输出连接到最右端的或门,由于其他七个与门输出都为0,因此输出端的结果取决于D2与门的输出结果,也就是取决于数据端D2

如果没看懂这段电路,可以自己再举个例子按这个步骤走一遍。

特定的写功能

写功能要实现将一个数据输入特定锁存器的功能。因此输入只能有一个开关。这个很好解决,用一个开关连接八个输入即可。选择特定输入的功能也可以用上文的电路。这样构建出的电路称为3-8解码器,电路图如下:
在这里插入图片描述
这个电路的思路和上文基本一样,就不用例子解释了。

RAM

我们最终得到的电路如下:
在这里插入图片描述
这个电路可以实现对特定位置的读写(寻址)及存储。它被称为随机访问存储器(RAM)。符号表示如下:
在这里插入图片描述
三个开关在这里表示为地址。

大型RAM阵列

8位RAM之间可以用两种方式进行连接。

  1. 两个RAM共享地址。
    在这里插入图片描述
    这样连接能做到存储八个数,每个数的位宽是2位,相当于是一个8x2的RAM。
  2. 在上述基础上加入1-2译码器和2-1选择器,一次只能输入到两个寄存器中一个的一位上,构建了一个16x1RAM的效果。
    在这里插入图片描述
    这里最右边的选择端实际上是第四个地址。因此4个地址可以标注16个数。(这里的数位宽不固定,因为可以利用第一个电路扩展位宽)。

上述两个电路一个可以增加存储的数的个数,一个可以扩展所存储数的位宽限制。因此我们可以构建如下的大型RAM阵列:
在这里插入图片描述
这个RAM阵列存储8KB.
请添加图片描述
我是霜_哀,在算法之路上努力前行的一位萌新,感谢你的阅读!如果觉得好的话,可以关注一下,我会在将来带来更多更全面的知识讲解!

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

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

相关文章

PS学习笔记(零基础PS学习教程)

很多新手学习PS不知从何下手,做设计的第一阶段肯定是打牢基础,把工具用熟练;本期特别为大家整理了PS入门的学习笔记,把每个工具的用法整理了下来,在使用过程中有哪里不清楚的可以翻看来看看~ 一、ps的工作界面的介绍 …

腾讯云的cdn怎么配置|腾讯云CDN配置教程

众所周知,WordPress系统不挂加速或者是服务器不好速度贼慢,所以要想办法解决访问速度的问题,经过我不断的研究腾讯云的CDN,因为我用的是zibll子比主题,不懂的就挂会导致无法使用第三方登录,因为有缓存导致一直不回调一直卡在那个登录界面和支付没反应要么出现二维码,要么…

【C++实现】从0简单理解muduo网络库

文章目录 TODO前言前置知识IO 异步同步还是异步举例muduo为什么用LT模式vscode 的一些编译方法 底层数据结构分析noncopyableLogger设置宏来方便打印日志 Timestamp 时间类InetAddressInetAddress 是对sockaddr_in结构体的一层封装 ChannelPoller.h EpollPoller (调…

c++ 11标准模板(STL) std::vector (四)

定义于头文件 <vector> template< class T, class Allocator std::allocator<T> > class vector;(1)namespace pmr { template <class T> using vector std::vector<T, std::pmr::polymorphic_allocator<T>>; }(2)(C17…

庖丁解牛函数知识---C语言《1》

目录 前言&#xff1a; 1.程序中的函数 2.库函数的学习和使用 3.自定义函数 4.传值调用与传址调用 5.形参与实参 6.练习---二分查找函数 ❤博主CSDN:啊苏要学习 ▶专栏分类&#xff1a;C语言◀ C语言的学习&#xff0c;是为我们今后学习其它语言打好基础&#xff0c;C生…

Apache POI,springboot中导出excel报表

2. Apache POI 2.1 介绍 Apache POI 是一个处理Miscrosoft Office各种文件格式的开源项目。简单来说就是&#xff0c;我们可以使用 POI 在 Java 程序中对Miscrosoft Office各种文件进行读写操作。 一般情况下&#xff0c;POI 都是用于操作 Excel 文件。 Apache POI 的应用场景…

【SQL】窗口函数及行转列等操作总结

1. 窗口函数 窗口函数的应用 排名问题&#xff1a;每个部门按业绩来排名 topN问题&#xff1a;找出每个部门排名前N的员工进行奖励 窗口函数的语法 <窗口函数> over (partition by <用于分组的列名> order by <用于排序的列名>) <窗口函数>的位置&…

Java基础--->JVM(1)

文章目录 为什么学习JVM&#xff1f;什么是虚拟机&#xff1f;JVM的作用JVM组成部分类加载器类什么时候会被加载&#xff08;初始化&#xff09;有哪些类加载器什么是双亲委派机制如何打破双亲委派机制 为什么学习JVM&#xff1f; ​ 学习JVM是为了能更深入的理解Java这门语言&…

推荐算法实战项目:PNN 原理以及案例实战(附完整 Python 代码)

本文要介绍的是由上海交通大学的研究人员提出的PNN&#xff08;Product-based Neural Networks&#xff09;模型&#xff0c;该模型包含一个embedding层来学习类别数据的分布式表示&#xff0c;此外还包含product层来捕获字段之间的特征交互模式&#xff0c;最后包含一个全连接…

一个实例讲讲 ChatGPT 推理

吴恩达与 OpenAI 官方联合推出了 1.5 小时的免费视频课&#xff1a;地址&#xff1a; https://learn.deeplearning.ai/chatgpt-prompt-eng/lesson/2/guidelines 今天我学了第四讲&#xff0c;ChatGPT Inferring&#xff0c;即推理 教学中&#xff0c;给的例子是情绪判断。 我很…

手写数字识别基本思路

问题 什么是MNIST?如何使用Pytorch实现手写数字识别&#xff1f;如何进行手写数字对模型进行检验&#xff1f; 方法 mnist数据集 MNIST数据集是美国国家标准与技术研究院收集整理的大型手写数字数据集&#xff0c;包含了60,000个样本的训练集以及10,000个样本的测试集。 使用P…

RIP笔记

目录 RIP路由信息协议——UDP520端口(RIPNG521端口) RIP使用的算法——贝尔曼福特算法 RIP的版本 RIP的数据包 RIP的工作过程 RIP的计时器 周期更新计时器——默认30s 失效计时器——默认180s 垃圾回收计时器——默认120s RIP的环路问题 解决方法&#xff1a; RIP的…

12种接口优化的通用方案

一、背景 针对老项目&#xff0c;去年做了许多降本增效的事情&#xff0c;其中发现最多的就是接口耗时过长的问题&#xff0c;就集中搞了一次接口性能优化。本文将给小伙伴们分享一下接口优化的通用方案。 二、接口优化方案总结 1.批处理 批量思想&#xff1a;批量操作数据库…

Item冷启优化

Item冷启动的目标&#xff1a; 1.精准推荐。 2.激励发布。 3.挖掘高潜。 Item冷启动优化措施&#xff1a; 1.优化全链路&#xff08;召回和排序&#xff09; 2.流量调控&#xff08;新老物品的流量分配&#xff09; 评价指标&#xff1a; 作者侧&#xff1a; 发布渗透率&a…

【基于Ubuntu18.04+Melodic的realsense D435安装】

【基于Ubuntu18.04Melodic的realsense D435安装】 1. RealSense SDK安装1.1 克隆SDK1. 2 安装相关依赖1.3 安装权限脚本1. 4 进行编译与安装1.5 测试安装是否成功 2. D435i 安装ROS接口2.1 方法一realsense—ros源码2.2 方法二安装相机库 3. 总结 1. RealSense SDK安装 系统硬…

C++:分治算法之选择问题的选择第k小元素问题

目录 3.2.6 选择问题 分析过程&#xff1a; 解法一&#xff1a; 算法代码&#xff1a; 【单组数据】 【多组数据】 运行结果&#xff1a; 解法二 代码&#xff1a; 运行结果&#xff1a; 解法三&#xff1a; 3.2.6 选择问题 ¢ 对于给定的 n 个元素的数组 a[0 …

DAY 53 Haproxy负载均衡集群

常见的Web集群调度器 目前常见的Web集群调度器分为软件和硬件&#xff1a; 软件通常使用开源的LVS、Haproxy、 Nginx LVS性能最好&#xff0c;但是搭建相对复杂&#xff1b;Nginx 的upstream模块支持群集功能&#xff0c;但是对群集节点健康检查功能不强&#xff0c;高并发性能…

第一章 Linux是什么

Linux是一套操作系统&#xff0c;如同下图所示&#xff0c;Linux就是核心与系统调用接口那两层。至于应用程序不算Linux。 1.1 Linux当前应用的角色 由于Linux kernel实在是非常的小巧精致&#xff0c;可以在很多强调省电以及较低硬件资源的环境下面执行&#xff1b; 此外&…

【Elasticsearch】NLP简单应用

文章目录 NLP简介ES中的自然语言处理(NLP)NLP演示将opennlp插件放在ESplugins路径中下载NER模型配置opennlp重启ES、验证 NLP简介 NLP代表自然语言处理&#xff0c;是计算机科学和人工智能领域的一个分支。它涉及使用计算机来处理、分析和生成自然语言&#xff0c;例如英语、中…

企业对网络安全的重视度开始降低

近日&#xff0c;英国科学技术部发布了《2023年企业网络安全合规调查报告》&#xff08; Cyber Security Breaches Survey &#xff09;&#xff0c;对英国所有企业和社会性组织目前的网络威胁态势和合规建设进行研究&#xff0c;同时也就如何提升新一代网络应用的合规性给出专…