计算机对字节的七种操作

news2024/12/26 9:18:08

        计算机对字节的处理有七种:复制,左移,右移,非,与,或,异或。本篇将回顾一下这几种操作的具体底层实现

四种常见的门结构

        到目前为止,我们已经使用了NAND、AND和NOT门。我们需要定义另外两个组合门。第一个是这样建造的:

        这种结构的输入和输出关系表为:

        在这种情况下,当两个输入都关闭时,输出都关闭,但如果“a”或“b”打开,或者两者都打开,则输出将打开。因此,它有另一个非常简单的名称,称为“OR门”。它没有绘制所有部分,而是有自己的图表,形状类似于屏蔽。图表和图表如下所示

        最后一个组合门是“异或”门结构,需要五个基础门构成,但它最终的作用非常简单。一种看待它的方式是如果一个且只有一个输入打开,输出就会打开。还有一种看待输出的方式是:如果输入相同,输出就会关闭,如果输入不同,输出就会开启。

        简化的图看起来类似于或门,但在输入端有一条双曲线。图表和图表如下所示

        回顾一下,我们现在有四种门,它们接受两个输入并产生一个输出。它们是NAND、AND、OR和XOR。下面是一个图表,它非常简单。对于“a”和“b”这四种可能的输入组合,每种类型的门都有自己的输出状态集,门的名称可以帮助您记住哪个是哪个。

对字节的操作

        单独的门在bit上进行操作。两bit进,一bit出。但是RAM一次存储和检索一个字节。总线一次移动一个字节。在CPU中,我们希望能够一次处理整个字节。我们需要一些影响整个字节的“门”。前面关于总线的介绍中,我们看到了字节的内容如何从一个寄存器复制到另一个寄存器。这通常称为移动字节。现在我们将看到这方面的一些变化 。

        首先,我们将看到当字节从一个寄存器移动到另一个寄存器时,我们可以通过三种方式来改变它的内容。第二,我们将看到四种方法,我们可以获取两个字节的内容,并让它们相互作用,为第三个字节创建内容。这些都是计算机实际对字节所做的一切。所有的事情最终归结为这七个操作。

左移右移

        移动功能很容易构造。它根本不使用任何门,只是把总线连接起来有点奇怪。是这样做的

        这显示了由右移位器连接的两个寄存器。移位器只是两个寄存器之间的导线。当R1的“e”位被开启,R2的“s”位被打开然后关闭时,R1中的所有位都被复制到R2中,但它们在一个固定位置上移位。底部的位(移出)可以连接到计算机中的其他位,但通常会连接回顶部的位(移入),当这一操作完成时,最右边的位会环绕到字节另一端的最左边的位。一次右换档器将从0100 0010更改为0010 0001

        如果“shift out”连接到“shift in”,则右换档将从0001 1001更改为1000 1100,左换档将从0100 0010更改为1000 0100。左换档的接线方式如下。

        简化版本的移位图如下,它们各自有一个“i”和“o”总线,以及一个输入和输出位,如下所示

        这有什么用呢?程序员的大脑里想出了各种各样的东西,但这里有一个有趣的东西。假设您使用的是二进制数字代码。R1中的数字是0000 0110。它是十进制数6。现在将代码左移到R2。R2将是0000 1100。这是十进制数字12。你知道吗,我们刚刚将数字乘以2。这是我们计算机中乘法的基础。稍后将看到你如何乘以2以外的数,但这是多么简单,只需移位bit即可。这类似于我们对十进制数所做的事情。如果你想把某个数字乘以10,你只需在右边加上一个零,有效地将每个数字左移一个位置。在二进制系统中,这只会导致乘以2,因为系统基于2。所以这就是移位,没有涉及门结构的操作。

非(NOTter)

        此设备将两个寄存器与八个NOT门连接。每个位都将改变为相反的。如果你从0110 1000开始,你将以1001 0111结束。这个操作有很多用途,第一个是在一些算术函数中。在我们描述其他一些事情之后,我们将很快看到这是如何工作的。NOT门的另一个名字是“取反器”,因为它与你给它的东西相反,把它颠倒过来,或者将其反转。

        输入和输出都是八根导线,简化图如下:

与(ANDer)

        ANDer取两个输入字节,并将这两个字节的每一位与操作为第三个字节。如您所见,“a”输入总线的八位连接到八个与门的上侧。“b”输入总线的八位连接到相同八个与门的下侧。八个与门的输出形成了该组件的总线输出“c”。这样,我们可以将两个字节加在一起形成第三个字节。

        这有很多用途。例如,您可以确保ASCII字母代码为大写。如果您在R0 0110 0101中有字母“e”的代码,您可以将位模式1101 1111放入R1,然后将R1和R0进行and运算,并将答案放回R0。除第三位外,R0中的所有位都将被复制回R0中。无论第三位之前是开还是关,它现在将关闭。R0现在将包含0100 0101,即“E”的ASCII代码这适用于所有ASCII字母代码,因为这就是ASCII的设计方式。

        下面是ANDer的一个更简单的总线类型图片

或(ORer)

        ORer取两个输入字节,并将这两个字节中的每一位OR为第三个字节。如您所见,“a”输入总线的八位连接到八个或门的上侧。“b”输入总线的八位连接到相同八个或门的下侧。八个或门的输出是该组件的总线输出“c”。这样,我们可以将两个字节一起进行OR运算,形成第三个字节

        这有什么用?有很多,但这里有一个。假设你有字母“E”的ASCII码,在R0,0100 0101中。如果你想让这个字母变为小写,你可以将位模式0010 0000放入R1,然后对R0和R1进行OR运算,然后将答案放回R0。会发生什么?R0的所有位都将被复制回R0中,除了第三位现在将处于开启状态。R0现在将是0110 0101,“e”的ASCII代码由于ASCII的设计方式,无论R0中的ASCII字母代码是什么,这都会起作用。

        下面是ORer的一个简单的总线类型图片

异或(XORer)

        XORer接受两个输入字节,并将这两个字节的每一位XOR为第三个字节。如您所见,“a”输入总线的八位连接到八个XOR门的上侧。“b”输入总线的8位连接到相同的8个XOR门的下侧。八个XOR门的输出是此组件的总线输出“c”。有了这个,我们可以将两个字节异或在一起形成第三个字节

        这有什么用?同样,富有想象力的人想出了许多用途。但这里有一个。假设你在R1中有一个代码,在R2中有另一个代码。你想知道这两个代码是否相同。所以你将R1和R2异或为R1。如果R1和R1包含相同的模式,那么R1现在将全部为零。R1中的0和1是什么模式并不重要,如果R2包含相同的模式,在XOR之后,R1将全部为零.

        由于输入和输出都是八线的,我们将使用总线类型图进行简化

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

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

相关文章

基于soft-RoCE运行OSU Micro Benchmark

之前的文章描述了如何运行Benchmark,但是那个是基于TCP的。现在想要跑一个基于RoCEv2的结果。虚拟机上没有支持infiniband的网卡,那就用Soft RoCE了。 Soft-RoCE的安装和调试 系统版本信息 adminosu-1:~$ uname -a Linux osu-1 5.11.0-44-generic #48~…

1.1 极限的概念

1.1 极限的概念 1.1.1 数列的极限 引言 在物理实验中,如果涉及到测量,那么误差总是存在的。误差是在正确实验的情况下实验测量值与理论值之间的差值。如果理论是正确的并且使用更精密的实验仪器或改进实验方法,那么测量值就会更加接近理论…

sql server卡慢问题定位和排查

一、数据库服务器资源排查 二、数据库sql性能排查 2.1、查询哪些资源被阻塞了 和 堵进程 1)、查询哪些资源被阻塞了(spid为阻塞进程id) select * from sys.sysprocesses where status suspended 2)、查询堵进程…

基于springboot的疫情防控管理系统

1、项目介绍 基于springboot的疫情防控管理系统拥有两种角色:管理员和用户 管理员:用户管理、隔离地点管理、隔离人员管理、防护用具管理、消毒管理、生活需求管理、体温上报管理、核酸结果管理、配餐管理、物资配送管理、隔离解除管理等 用户&#x…

linux make和makefile

目录linux make和makefilemake小程序进度条linux make和makefile make 会不会写makefifile,从一个侧面说明了一个人是否具备完成大型工程的能力 一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefifile定义了一系列…

一文快速学会linux shell 编程基础!!!

文章目录前言一、shell脚本执行的方式1.格式要求2.脚本常用执行方式2.1 . 输入脚本的绝对路径或相对路径进行执行2.2 使用 sh 脚本的方式shell 的注释语法二、shell 变量1.shell变量介绍2.shell 变量的定义定义变量定义变量的规则将命令的返回值赋给变量3.设置环境变量3.位置参…

多功能电力仪表在物联网的应用

安科瑞 华楠 有线多功能电力仪表场景 应用场景 功能: 1.支持全电力参数测量;以及2-31次分次谐波测量;支持双向有功电能计量,支持四套时段表、4个时区、14个日时段、4种费率的电能统计;需量及发生时间统计&#xff1…

智慧党务管理源码,竞赛答题+阅读学习一套系统全搞定

智慧党务源码系统是利用互联网技术实现党建信息资源整合、逐步提升现代化党建知识水平的党务学习答题系统平台。今天万岳科技就来讲一讲如果开发一套智慧党务源码需要满足哪些功能?智慧党务学习答题系统主要功能为: 1、党组织管理:对各级党务…

我参加NVIDIA Sky Hackathon 环境安装(基本系统环境)

我的硬件环境 x86的物理机RTX 3060 12G16G 的 U盘 软件环境 Ubuntu 20.04 LTSssh 命令行输入 apt install ssh 即可 第一个坑: 18.04 的 Ubuntu 系统在安装过程中无法显示, 99% 的场景显示器会黑屏所以 3060 最好使用 Ubuntu 20.04 及以上版本 安装…

SpringMVC ---- SpringMVC的视图

SpringMVC ---- SpringMVC的视图1. ThymeleafView2. 转发视图3. 重定向视图4. 视图控制器view-controllerSpringMVC 中的视图是 View 接口,视图的作用是渲染数据,将模型 Model 中的数据展示给用户 SpringMVC 的视图种类很多,默认有转发视图和…

[附源码]SSM计算机毕业设计“云味坊”购物网站JAVA

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

振弦采集模块的通讯协议( IIC)

振弦采集模块的通讯协议( IIC) IIC 通讯协议本身即是基于设备地址和寄存器的物理层通讯协议, VMXXX 使用 IIC 接口对传感器的访问,请遵循前述硬件接口时序及协议说明即可。 IIC 访问时使用与 UART 相同的寄存器地址,地…

【云原生-Docker】使用 Docker Compose 管理容器

🍁博客主页:👉不会压弯的小飞侠 ✨欢迎关注:👉点赞👍收藏⭐留言✒ ✨系列专栏:👉Docker学习专栏 ✨学习社区:👉不会压弯的小飞侠 ✨知足上进,不负…

5种方法实现(a==1 a==2 a==3) == true

乍一看,这个咋能相等呢?深入思考就发现不仅可以相等,还有不少方法,下面就来讲讲这些方法都是如何实现的。 一、valueOf && toString 直接上代码: 比较运算分为2种, 一种为严格比较(),…

【设计模式】类图

本文主要介绍类图的概念、类之间的关系以及如何用类图表示类和类之间的关系 类图: 是一种静态结构图,是系统分析和设计阶段的重要产物。 类图画法: 1. 类的表示方式 类的表示中包含类名、属性 和 方法, 其中, 表示…

C++ Reference: Standard C++ Library reference: Containers: deque: deque: empty

C官网参考链接&#xff1a;https://cplusplus.com/reference/deque/deque/empty/ 公有成员函数 <deque> std::deque::empty C98 bool empty() const; C11 bool empty() const noexcept;测试容器是否为空 返回deque容器是否为空&#xff08;即其size是否为0&#xff09;…

大一Web课程设计:企业网站——HTML+CSS+JavaScript电子购物商城(37页面)

常见网页设计作业题材有 个人、 美食、 公司、 学校、 旅游、 电商、 宠物、 电器、 茶叶、 家居、 酒店、 舞蹈、 动漫、 服装、 体育、 化妆品、 物流、 环保、 书籍、 婚纱、 游戏、 节日、 戒烟、 电影、 摄影、 文化、 家乡、 鲜花、 礼品、 汽车、 其他等网页设计题目, A…

VIAVI唯亚威FI-10/-11 光纤识别仪

FI-10 和 FI-11 手持式光纤识别仪稳固可靠&#xff0c;易于安装和维护&#xff0c;能够检测通过单模光纤传输的光信号&#xff0c;从而识别出光纤。它们采用局部检测技术&#xff08;非破坏性宏弯检测&#xff09;&#xff0c;从而不再需要在接合点处打开光纤进行识别&#xff…

【好文鉴赏】优秀的后端应该有哪些开发习惯

关键词&#xff1a;[后端] [编程习惯] [代码风格] 原文链接&#xff1a; https://juejin.cn/post/7072252275002966030https://www.51cto.com/article/721104.html 这里涉及到的主要是 Java 语言&#xff0c;当然也有通用的一些习惯&#xff1b; 拆分合理的目录结构 受传统的…

Spring Cloud网关路由谓词

目录 一、前言 1、注意事项 2、词汇表 3、工作原理 二、配置路由谓词工厂 1、快捷方式 1.1、快捷方式配置 1.2、完全展开的参数 2、路由谓词工厂 2.1、路由谓词工厂之后 2.2、路线谓词工厂之前 2.3、路由谓词工厂之间 3、Cookie路线谓词工厂 4、标头路由谓词工厂 …