当前位置: 首页 > news >正文

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

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

文章目录

  • 十六进制
    • 十六进制概述
    • 十六进制表
    • 字节到十六进制
  • 存储器
    • 特定的读功能
    • 特定的写功能
    • 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.
请添加图片描述
我是霜_哀,在算法之路上努力前行的一位萌新,感谢你的阅读!如果觉得好的话,可以关注一下,我会在将来带来更多更全面的知识讲解!

相关文章:

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

“学习如春起之苗,不见其增,日有所长。” —— 宋代朱熹 文章目录 十六进制十六进制概述十六进制表字节到十六进制 存储器特定的读功能特定的写功能RAM大型RAM阵列 十六进制 十六进制概述 十六进制是一种适用于计算机的进制法。在十进制中,…...

leetcode.1376 通知所有员工所需的时间 - bfs/dfs + 树

1376. 通知所有员工所需的时间 目录 一、bfs 二、dfs 题目: 公司里有 n 名员工,每个员工的 ID 都是独一无二的,编号从 0 到 n - 1。公司的总负责人通过 headID 进行标识。在 manager 数组中,每个员工都有一个直属负责人&#x…...

AtCoder Beginner Contest 300——A-G题讲解

蒟蒻来讲题,还望大家喜。若哪有问题,大家尽可提! Hello, 大家好哇!本初中生蒟蒻讲解一下AtCoder Beginner Contest 300这场比赛的A-G题! A - N-choice question 原题 Problem Statement Given integers A A A and…...

Go:值与指针

1. 计算机中的值 在百万年的演化历史中,人类对事物的属性进行了抽象,有了数量、精度、信息等概念的表示,对应的我们称之为整数、小数、文本文字等。计算机出现后,我们使用计算机对真实世界的问题进行建模,通过计算机的…...

【Linux】进程学习(2)---理解进程操作

文章目录 查看进程通过系统目录查看通过ps命令查看 通过系统调用获取进程标识符通过系统调用创建进程初识fork函数fork函数的返回值 进程状态阻塞与运行状态Linux内核源码中的进程状态运行状态-R浅度睡眠状态-S深度睡眠状态-D暂停状态-T僵尸状态-Z死亡状态-X 查看进程 通过系统…...

基于springcloud实现的医院信息系统

访问【WRITE-BUG数字空间】_[内附完整源码和文档] 医疗信息就诊系统,系统主要功能按照数据流量、流向及处理过程分为临床诊疗、药品管理、财务管理、患者管理。诊疗活动由各工作站配合完成,并将临床信息进行整理、处理、汇总、统计、分析等。本系统包括以…...

设计模式-创建型模式-(工厂、简单工厂、抽象工厂)

一、简单工厂模式 上代码 public class FoodFactory {public static Food makeFood(String name) {if (name.equals("noodle")) {Food noodle new LanZhouNoodle();noodle.addSpicy("more");return noodle;} else if (name.equals("chicken")…...

JAVA12新特性

JAVA12新特性 概述 2019年3月19日,java12正式发布了,总共有8个新的JEP(JDK Enhancement Proposals) JDK 12 is the open-source reference implementation of version 12 of the Java SE12 Platform as specified by by JSR 386 in the Java Community Process. JDK 12 reac…...

Nginx 静态文件、反向代理、负载均衡、缓存、SSL/TLS 加密、gzip 压缩 等等

Nginx的功能 1. 静态文件服务器2. 反向代理服务器3. 负载均衡4. 缓存5. SSL/TLS 加密6. URL 重写7. HTTP/28. WebSocket9. 反向代理缓存10. 安全限制11. gzip 压缩12. 请求限速13. 日志记录14. SSL 证书续订 Nginx 是一个高性能的开源 Web 服务器和反向代理服务器,它…...

Linux设备驱动模型(一)

一、sysfs文件系统 sysfs是一个虚拟文件系统,将内核总的设备对象的链接关系,以文件目录的方式表示出来,并提对设备提供读写接口。 二、kobject kobject是内核中对象表示的基类,可以认为所有的内核对象都是一个kobject kobject单…...

【Python入门篇】——Python基础语法(标识符与运算符)

作者简介: 辭七七,目前大一,正在学习C/C,Java,Python等 作者主页: 七七的个人主页 文章收录专栏: Python入门,本专栏主要内容为Python的基础语法,Python中的选择循环语句…...

扩展 VirtualBox 已分配磁盘的方法

扩展 VirtualBox 已分配磁盘的方法 第一步:用VirtualBox命令行调整已分配磁盘的大小第二步:用windows磁盘管理工具扩展磁盘空间其他无关配置如何选择虚拟机的芯片组 注意:扩展操作只支持 vdi 格式的磁盘,就是VirtualBox自己的磁盘…...

【LeetCode】646. 最长数对链

646. 最长数对链(中等) 思路 这道题和 300. 最长递增子序列 类似,我们可以定义 dp 数组,其中 dp[i] 表示以 i 结尾的子序列的性质。在处理好每个位置后,统计一遍各个位置的结果即可得到题目要求的结果。 但是题目中强…...

Makefile教程(Makefile的结构)

文章目录 前言一、Makefile的结构二、深入案例三、Makefile中的一些技巧总结 前言 一、Makefile的结构 Makefile 通常由一系列规则组成,每条规则定义了如何从源文件生成目标文件。每个规则又由目标、依赖和命令三部分组成。 下面是 Makefile 规则的基本结构&…...

SpringMVC(后)SSM整合

10、文件上传和下载 10.1、文件下载 ResponseEntity用于控制器方法的返回值类型&#xff0c;该控制器方法的返回值就是响应到浏览器的响应报文 使用ResponseEntity实现下载文件的功能 RequestMapping("/testDown") public ResponseEntity<byte[]> testResp…...

【博弈论】【第一章】博弈论导论

博弈论导论 【例题】选择数字【例题】巴什博弈【例题】射手博弈博弈论的基本概念&#xff1a;参与人战略行动信息支付函数【例题】分100元 课程概述&#xff1a; 【例题】选择数字 两个参与人A和B&#xff0c;轮流选择[3,4,5,6,7,8,9]中的一个整数&#xff08;可重复)。当累计…...

keil移植linux(makefile)

文章目录 运行环境&#xff1a;1.1 freeRTOS_LED工程移植1)修改cubeMX配置2)setting设置3)launch设置4)修改makefile5)修改代码6)实验效果 运行环境&#xff1a; ubuntu18.04.melodic 宏基暗影骑士笔记本 stm32f427IIH6 stlink 9-24v可调电源 robomaster A 板 1.1 freeRTOS_L…...

C++——类和对象(3)

作者&#xff1a;几冬雪来 时间&#xff1a;2023年5月6日 内容&#xff1a;C类和对象内容讲解 目录 前言&#xff1a; 1.运算符重载&#xff08;续&#xff09;&#xff1a; 2.赋值重载&#xff1a; 结尾&#xff1a; 前言&#xff1a; 在上一篇博客中我们再一次讲解了…...

itop-3568开发板驱动学习笔记(24)设备树(三)时钟实例分析

《【北京迅为】itop-3568开发板驱动开发指南.pdf》 学习笔记 文章目录 生产者属性#clock-cells 属性clock-output-namesclock-frequencyassigned-clockclock-indicesassigned-clock-parents 消费者属性 设备树中的时钟信息以时钟树形式体现&#xff0c;时钟树包括时钟的属性和结…...

linux中使用docker部署微服务

目录 一、制作jar包&#xff08;如果看一眼很简单&#xff0c;可以直接使用结尾的jar&#xff09; 1.首先创建一个微服务 demo2 2.启动微服务&#xff08;在DemoApplication上右键执行启动就行&#xff09; 注意&#xff1a;其他操作导致的 可能遇到的报错 3.修改端口 4.新…...

嵌入式C语言变量初始化技术详解

## 1. 嵌入式C语言变量初始化技术详解### 1.1 初始化的重要性与基本原则在嵌入式系统开发中&#xff0c;变量初始化是防止未定义行为的关键步骤。由于嵌入式编译器特性的差异&#xff0c;未初始化的变量可能包含随机值&#xff0c;导致系统出现不可预测的行为。根据变量类型的不…...

如何高效使用iOS推送调试工具:SmartPush完整操作指南

如何高效使用iOS推送调试工具&#xff1a;SmartPush完整操作指南 【免费下载链接】SmartPush SmartPush,一款iOS苹果远程推送测试程序,Mac OS下的APNS工具APP,iOS Push Notification Debug App 项目地址: https://gitcode.com/gh_mirrors/smar/SmartPush SmartPush是一款…...

小白友好!FunASR语音识别镜像部署教程,开箱即用

小白友好&#xff01;FunASR语音识别镜像部署教程&#xff0c;开箱即用 1. 快速了解FunASR语音识别 FunASR是由阿里云推出的开源语音识别工具包&#xff0c;它就像是一个能听懂人说话的智能助手。想象一下&#xff0c;你对着手机说话&#xff0c;它能立刻把你说的话变成文字—…...

泛微Ecology流程数据查询避坑指南:workflow_currentoperator表里isremark字段到底怎么用?

泛微Ecology流程数据查询实战&#xff1a;解密workflow_currentoperator表关键字段 在泛微Ecology系统的二次开发过程中&#xff0c;流程数据的精准查询往往是开发者面临的第一道门槛。特别是当需要对接第三方系统或构建定制化报表时&#xff0c;对workflow_currentoperator表中…...

RimWorld开局定制利器:EdB Prepare Carefully深度应用指南

RimWorld开局定制利器&#xff1a;EdB Prepare Carefully深度应用指南 【免费下载链接】EdBPrepareCarefully EdB Prepare Carefully, a RimWorld mod 项目地址: https://gitcode.com/gh_mirrors/ed/EdBPrepareCarefully 在RimWorld的殖民挑战中&#xff0c;开局配置往往…...

Java中正确比较数组最小值的两种方法

本文旨在解决Java Stream 当API使用min()方法获得数组最小值时&#xff0c;返回optionalint类型导致的直接比较错误。我们将深入探讨这个问题的根源&#xff0c;并提供两个有效的解决方案&#xff1a;一是比较Optionalint的getasint()方法&#xff0c;二是引入apache Commons N…...

Qwen3.5小尺寸模型开源,9B碾压GPT开源版,消费级显卡就能跑

AI圈又出大新闻了✨ 阿里通义千问3.5系列小尺寸模型正式亮相&#xff0c;直接打破“小模型能力弱”的固有认知&#xff0c;甚至实现了“以小胜大”的逆袭&#xff0c;本地部署门槛直接拉到平民级&#xff01; 先上核心干货——这次千问3.5一口气推出了4款小尺寸模型&#xff0c…...

告别网络依赖:用这个开源工具+高德离线包,5步搞定前端地图离线展示

前端开发者的离线地图解决方案&#xff1a;5步实现高德地图本地化部署 在紧急演示、内网开发或网络不稳定的环境中&#xff0c;依赖在线地图服务往往成为前端开发的痛点。我曾参与过一个政府内网项目&#xff0c;现场演示时因网络权限问题导致地图无法加载&#xff0c;最后不得…...

League Akari:5大核心解决方案提升英雄联盟游戏体验

League Akari&#xff1a;5大核心解决方案提升英雄联盟游戏体验 【免费下载链接】League-Toolkit 兴趣使然的、简单易用的英雄联盟工具集。支持战绩查询、自动秒选等功能。基于 LCU API。 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit League Akari是一…...

三菱PLC与MCGS组态农田智能灌溉系统:后发送产品包括梯形图原理图、IO分配及组态画面解析

基于三菱PLC和MCGS组态农田智能灌溉系统 我们主要的后发送的产品有&#xff0c;带解释的梯形图接线图原理图图纸&#xff0c;io分配&#xff0c;组态画面上周刚把农田智能灌溉的项目收尾&#xff0c;把资料打包发给客户的时候&#xff0c;终于能瘫在椅子上喝杯冰可乐了。这个…...