计算机的运算方式
1. 计算机运算的基本概念
计算机的运算由 算术逻辑单元(ALU) 执行,其核心功能是完成 算术运算 和 逻辑运算。所有运算均基于二进制编码,通过硬件电路实现高速计算。
- 运算对象:二进制数(定点数、浮点数)、逻辑值(0/1)。
- 运算控制:由控制器(CU)解析指令,生成控制信号驱动ALU操作。
2. 算术运算
(1) 定点数运算
- 加法:
- 通过 全加器电路 逐位计算,考虑进位传递(如行波进位加法器、超前进位加法器)。
- 补码表示:统一加减法为加法运算(减法转换为加负数补码)。
- 减法:通过补码转换为加法(如 (A - B = A + (-B)_{补码}))。
- 乘法:
- 原码乘法:符号位单独处理,数值部分通过移位相加实现(如手算乘法模拟)。
- 补码乘法(Booth算法):优化有符号数乘法,减少运算步骤。
- 除法:
- 恢复余数法:通过试商、减除数、调整余数循环操作。
- 不恢复余数法(加减交替法):效率更高,现代计算机普遍采用。
(2) 浮点数运算
- 表示格式:遵循 IEEE 754标准(单精度32位:1位符号+8位阶码+23位尾数)。
- 运算步骤:
- 对阶:对齐两数的阶码(小阶向大阶对齐)。
- 尾数运算:执行加减乘除。
- 规格化:调整尾数和阶码,确保最高有效位为1。
- 舍入处理:就近舍入、截断舍入等。
- 溢出判断:检查阶码是否超出表示范围。
3. 逻辑运算
- 基本逻辑运算:
- 与(AND):全1则1,否则0(如屏蔽特定位)。
- 或(OR):有1则1(如置位特定位)。
- 非(NOT):取反。
- 异或(XOR):不同为1,相同为0(如交换两数无需临时变量)。
- 组合运算:与非(NAND)、或非(NOR)等,由基本门电路组合实现。
- 应用场景:
- 条件判断(如CPU标志寄存器中的零标志、进位标志)。
- 数据加密(位级异或操作)。
- 图形处理(像素混合逻辑运算)。
4. 运算器的硬件实现
(1) ALU核心组件
- 加法器:实现算术运算的基础模块。
- 移位器:支持逻辑移位(补0)和算术移位(保留符号位)。
- 多路选择器(MUX):选择不同运算结果输出。
(2) 数据通路
- 输入输出:通过数据总线接收操作数,输出运算结果至寄存器或存储器。
- 标志寄存器:记录运算状态(如溢出、进位、零结果)。
5. 运算的优化技术
(1) 并行计算
- 位级并行:全加器中多进位链同时计算(如超前进位加法器)。
- 指令级并行:流水线技术提升指令吞吐量(如五级流水线)。
- 数据级并行:SIMD(单指令多数据)加速向量运算(如AVX指令集)。
(2) 硬件加速
- 专用运算单元:
- 乘法器:阵列乘法器、华莱士树优化。
- 浮点运算单元(FPU):独立于ALU,加速科学计算。
- 协处理器:如GPU用于并行矩阵运算(如深度学习训练)。
6. 运算中的关键问题
- 溢出处理:
- 定点数溢出:符号位异常改变(如正+正=负)。
- 浮点数溢出:阶码超出表示范围(上溢/下溢)。
- 精度损失:
- 浮点数尾数截断导致舍入误差(如0.1在二进制中无法精确表示)。
- 延迟与功耗:
- 复杂运算(如除法)需多时钟周期完成,高频率运算增加功耗。
7. 应用场景
- 科学计算:浮点运算模拟气候模型、核物理反应。
- 图形渲染:GPU并行计算顶点变换、光照模型。
- 密码学:模幂运算(RSA)、位操作(AES加密)。
- 人工智能:张量运算(如神经网络前向传播)。
8. 未来发展方向
- 量子运算:利用量子叠加态并行计算(如Shor算法破解加密)。
- 存内计算:在存储器中直接完成运算,减少数据搬运能耗。
- 近似计算:容忍一定误差以提升能效(如边缘AI推理)。
相关文章:
计算机的运算方式
1. 计算机运算的基本概念 计算机的运算由 算术逻辑单元(ALU) 执行,其核心功能是完成 算术运算 和 逻辑运算。所有运算均基于二进制编码,通过硬件电路实现高速计算。 运算对象:二进制数(定点数、浮点数&am…...
Tkinter事件与绑定
在Tkinter中,事件和事件绑定是实现用户交互的核心机制。通过事件机制,您可以捕捉用户的操作(例如鼠标点击、键盘输入等)并执行相应的回调函数。事件绑定是将事件与处理该事件的函数(或方法)关联起来。掌握事件和绑定技术是开发交互式应用程序的关键。 5.1 事件概述 事件…...
CAD 像素点显示图片——CAD二次开发 OpenCV实现
效果如下: 部分代码如下: public class Opencv1{[CommandMethod("xx1")]public void Opencv(){Document doc Application.DocumentManager.MdiActiveDocument;Database db doc.Database;Editor ed doc.Editor;// 设置采样精度,这…...
即梦+剪映:三国演义变中国好声音制作详解!
最近在刷抖音时,发现这种电影人物唱歌视频比较火热,今天手把手教大家如何制作这种让电影人物唱歌的视频! 一、素材准备 1、准备好视频或人物图片素材 这里需要准备一张人物截图或者电影视频片段,大家可以去各大视频网站找原始素…...
04-线程
一、线程的概念 1、进程是系统分配资源的最少单位,操作系统会为每一个进程分配一块虚拟内存空间! 线程是系统调度最少的单位,操作系统分配时间片的过程,就是系统调度! 线程也会占用时间片! 2、线程的内存资源 线程的内存资源是…...
7.渐入佳境 -- 优雅的断开套接字连接
前言 本章将讨论如何优雅地断开相互连接的套接字。之前用的方法不够优雅是因为,我们是调用close或closesocket函数单方面断开连接的。 一、基于TCP的半关闭 TCP中的断开连接过程比建立连接过程更重要,因为连接过程中一般不会出现大的变数,…...
Django3 - 开启Django Hello World
一、开启Django Hello World 要学习Django首先需要了解Django的操作指令,了解了每个指令的作用,才能在MyDjango项目里编写Hello World网页,然后通过该网页我们可以简单了解Django的开发过程。 1.1 Django的操作指令 无论是创建项目还是创建项…...
JavaScript 基础特性
一、变量特性 1.1 变量提升 console.log(temp); // undefined(变量提升但未初始化) var temp hello; 现象:var声明的变量会提升至作用域顶部,但赋值不提升 建议:改用 let/const 避免变量提升问题 1.2 变量泄露 fo…...
MATLAB遇到内部问题,需要关闭,Crash Decoding : Disabled - No sandbox or build area path
1.故障界面 MATLAB运行时突然中断,停止运行。故障界面如图: MATLAB Log File: C:\Users\wei\AppData\Local\Temp\matlab_crash_dump.21720-1 ------------------------------------------------ MATLAB Log File -----------------------------------…...
L1-5 吉老师的回归
题目 L1-078 吉老师的回归(15分) 曾经在天梯赛大杀四方的吉老师决定回归天梯赛赛场啦! 为了简化题目,我们不妨假设天梯赛的每道题目可以用一个不超过 500 的、只包括可打印符号的字符串描述出来,如:Probl…...
0413-多态、Object类方法、访问权限修饰符、装箱拆箱、128陷阱
1:A and A 2:A and A 3: A and D 4: B and A 5: B and A 6:A and D 7:B and A 8: B and A 9:A and D package 第四章对象和类;public class ForthThir {//多态:父类的引用指向子类的对象,只能调父类的方法和子类重写的方法,不能调子类独有的方法&…...
Kubernetes控制平面组件:APIServer 准入控制机制详解
云原生学习路线导航页(持续更新中) kubernetes学习系列快捷链接 Kubernetes架构原则和对象设计(一)Kubernetes架构原则和对象设计(二)Kubernetes架构原则和对象设计(三)Kubernetes控…...
苍穹外卖day02
菜品相关接口开发 图片上传-阿里云OSS 依赖注入 <dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss</artifactId><version>${aliyun.sdk.oss}</version> </dependency> 配置密钥 sky:alioss:end…...
SpringBoot 自定义输出控制台图标
对于控制台输出的这个图标大家都不陌生吧,不仅在SpringBoot中有这种图标,在docker 、 nginx 启动时都有自身独特的图标,这是怎么实现的呢。 需要利用一个网站生成 banner 图标(首页-bootschool.net), 将图标…...
联想电脑开机出现Defalut Boot Device Missing or Boot Failed怎么办
目录 一、恢复bios默认设置 二、关机重启 三、“物理”方法 在图书馆敲代码时,去吃了午饭回来发现刚开机就出现了下图的问题(崩溃),想起之前也发生过一次 这样的问题,现在把我用到的方法写在下面,可能对…...
CST1020.基于Spring Boot+Vue汽车租赁管理系统
计算机/JAVA毕业设计 【CST1020.基于Spring BootVue汽车租赁管理系统】 【项目介绍】 汽车租赁管理系统,基于 Spring Boot Vue 实现,功能丰富、界面精美 【业务模块】 客户管理:查询客户信息、根据条件精准检索、添加客户信息、身份证号校验…...
ArkTS基础语法:从声明到类型的深度解析
# ArkTS基础语法:从声明到类型的深度解析 在鸿蒙应用开发的领域中,ArkTS作为重要的编程语言,其基础语法是开发者们必须掌握的关键内容。今天,我们就围绕ArkTS的声明和类型相关知识展开深入探讨,帮助大家更好地理解和运…...
Day15:关于MySQL的编程技术——基础知识
前言:先创建一个练习的数据库和数据 1.创建数据库并创建数据表的基本结构 -- 创建练习数据库 CREATE DATABASE db_programming; USE db_programming;-- 创建员工表(包含各种数据类型) CREATE TABLE employees (emp_id INT PRIMARY KEY AUTO…...
wsl下编译eXosip和osip库(Ubuntu 22.04)
1.下载eXosip和osip osip下载路径 Index of /mirror/gnu.org/savannah/osip eXosip下载路径 Index of /nongnu/exosip 我选的osip和eXosip版本为 5.2.0 2.编译osip库 tar -zxvf libosip2-5.2.0.tar.gz cd libosip2-5.2.0 ./configure make make install 在编译…...
《轨道力学导论》——第九章:轨道确定与导航
第九章 轨道确定与导航 引言 轨道确定与导航是轨道力学中最为核心的实践领域之一,它将理论与实际应用紧密结合,解决了"我们在哪里"以及"我们将去向何方"这两个航天活动中最基本的问题。无论是地球轨道上的人造卫星、飞向深空的探测…...
几何与游标
在arcgis中,数据组织方式如下 数据库(datasets): 要素类(feature class): 几何(geometry) 属性(attribute) 元数据(metadata) 游标: 查询游标:用于对数据进行查询的游标 arcpy.da.SearchCursor() 作用:用于对数据进行只读查询操作。它可以帮助你逐行读取数据表或…...
【使用jenkins+docker自动化部署java项目】
背景: 有A(打包机129),B(游戏服130) 2个机器,他们都安装有docker,请完成部署。 一、准备好java项目,写好Dockerfile # 基础镜像,使用包含 JDK 17 的 OpenJDK 镜像 FROM openjdk:17-jdk-slim# 设置工作目录 WORKDIR /…...
Vue3+Element Plus如何实现左树右表页面案例:即根据左边的树筛选右侧表功能实现
文章目录 一、最终效果二、源代码2.1 AddDataSource.vue2.2 LeftTree.vue2.3 FieldDrawer.vue2.4 RightTable.vue2.5 Emp.vue 三、代码解读3.1 AddDataSource.vue —— 数据源新增对话框3.2 LeftTree.vue —— 数据源树视图3.3 FieldDrawer.vue —— 字段详情抽屉3.4 RightTabl…...
Redisson的红锁,分段锁,公平锁,联锁。。。。。。
红锁:Redisson红锁可以防止主从集群锁丢失问题。Redisson红锁要求,必须要构建至少三个Redis主从集群,若一个请求要申请锁,必须向所有主从集群中提交key写入请求,只有当大多数集群(过半集群)锁写…...
system V 共享内存
system V是一种标准,linux内核支持这种标准,专门设计了一个ipc模板(通信的接口设计,原理,接口,相似性) 使用各自的虚拟地址访问物理内存 共享内存描述共享内存的内核数据结构它所对应的物理空间 进程间通信的本质&…...
ResNet改进(27):融合EfficientViT 高效混合网络设计
在计算机视觉领域,卷积神经网络(CNN)和视觉Transformer(ViT)各有优势。 今天分享的是一种将两者巧妙结合的方案——在ResNet18基础上引入轻量化ViT模块的设计思路。 整体架构概览 这个混合网络主要由三部分组成: ResNet18骨干网络:作为特征提取器,去掉了原模型的平均池化…...
字符串与栈和队列-算法小结
字符串 双指针 反转字符串(双指针) 力扣题目链接 void reverseString(vector<char>& s) {for (int i 0, j s.size() - 1; i < s.size()/2; i, j--) {swap(s[i],s[j]);} }反转字符串II 力扣题目链接 遍历字符串的过程中,只要让 i (2 * k)&#…...
go语言学习笔记:gin + gorm + mysql 用户增删改查案例入门
大家好,我是此林。 Golang 语言现在已经成为了编程的趋势,毕竟是大厂背书嘛,Google 研发的。 目前很多云原生项目都是基于 go 来编写的,比如: Kubernetes (K8s) 容器编排系统, Docker 容器化技术&…...
设计模式——建造者模式(生成器模式)总结
当我们需要创建一个非常复杂的对象时,可以使用建造者模式,分步骤建造一个对象,最后将完整的对象返回给客户端。 比如,我们要生成一个房子对象,建造一个房子,需要打地基、盖围墙、盖地板、安装门、安装窗户…...
Nginx代理Minio出现AccessDeniedAccessDenied
一、问题描述 AccessDeniedAccessDenied.sight.jpgmediafiles/mediafiles/sight.jpg1835E50603CB8FE0dd9025bab4ad464b049177c95eb6ebf374d3b3fd1af9251148b658df7ac2e3e8 二、问题排查 (1)minio 和 nginx 是否正常启动 (2)检…...
在ArcGIS Pro中将栅格NoData值修改为特定值
目录 问题如下:栅格文件中NoData值为65535,要将该NoData值修改为-9999 步骤一:使用栅格计算器(Raster Calculator)输出具有新NoData值的栅格文件 步骤二:输出修改值后的栅格文件(Export Rast…...
模糊表示学习 笔记
图表示学习通常从图的拓扑结构和高维节点属性中产生低维和清晰的表示。然而,节点或图的清晰表示实际上隐藏了特征的不确定性和可解释性。例如,在引文网络中,两篇论文之间的引用总是涉及表示相关度的future,也就是说,一…...
GitHub 趋势日报 (2025年04月12日)
本日报由 TrendForge 系统生成 https://trendforge.devlive.org/ 📈 今日整体趋势 Top 10 排名项目名称项目描述今日获星总星数语言1yeongpin/cursor-free-vip[Support 0.48.x](Reset Cursor AI MachineID & Auto Sign Up / In & Bypass Higher…...
FreertosHAL库笔记
堆和栈 堆:一块内存空间,用于存储程序运行时动态申请的内存空间。在堆上分配内存可以根据程序的需要灵活地申请和释放不同大小的内存块。可用pvProMalllloc()和vPortFree()函数来开辟和释放 栈:也是一块内存空间,主要用于函数调用…...
迷你世界脚本之容器接口:WorldContainer
容器接口:WorldContainer 彼得兔 更新时间: 2023-04-26 10:21:02 具体函数名及描述如下: 序号 函数名 函数描述 1 addFurnace(...) 新增熔炉 2 removeFurnace(...) 移除熔炉 3 checkFurnace(...) 检测是否为熔炉 4 getFurnaceHeatPerce…...
springboot框架集成websocket依赖实现物联网设备、前端网页实时通信!
需求: 最近在对接一个物联网里设备,他的通信方式是 websocket 。所以我需要在 springboot框架中集成websocket 依赖,从而实现与设备实时通信! 框架:springboot2.7 java版本:java8 好了,还是直接…...
【linux知识】web服务环境搭建(一):用户以及开发环境初始化
toc 创建用户组以及用户 以下是 创建用户组 wendao 和用户 wendao 并指定 GID、UID 及家目录 的完整操作指南: 一、创建用户组(指定 GID) sudo groupadd -g 1500 wendao # 创建组并指定 GID 为 1500• 注意:GID 需唯一&#…...
消息中间件——RocketMQ(一)
前言:此篇文章系本人学习过程中记录下来的笔记,里面难免会有不少欠缺的地方,诚心期待大家多多给予指教。 RocketMQ(一) 一、MQ出现的背景 在传统的单体应用架构中,系统的各个模块紧密耦合在一起。随着业务…...
[oeasy]python087_[词根溯源]suspend词源_append_depend
087_[词根溯源]suspend词源_append [词根溯源]suspend词源_append_depend 回忆上次内容 上次了解了 方法 和 函数的 不同之处 方法(method) 函数(function) 需要对象调用 无需对象调用 可以根据 名字调用 无需名字 直接调用 基于类的对象 独立的 需要self 不需要self…...
Ubuntu 安装 Cursor AppImage 到应用程序中
如果 Cursor AppImage 安装到 Ubuntu 系统中(而不是每次手动运行 .AppImage 文件),可以按照以下方法操作: 方法 1:直接运行 AppImage(最简单,但不完全“安装”) 赋予执行权限chmod …...
二叉树 --- 堆(下)
今天我们来把堆完结了。 对于一个高度为 h 的满二叉树,有 F(h) 2 ^ 0 2 ^ 1 …… 2 ^ (h - 1) 2 ^ h - 1 h log2 (N1) 对于一个高度为 h 的完全二叉树,且最后一层只有一个 ,则 F(h) 2 ^ 0 2 ^ 1 …… 2 ^ (h - 2) 1 2 ^ (h -…...
数组对象[object],五种如何去重方法 js
前言 数组有很多方法都可以实现去重。本章分享比较常用的。 准备工作 准备一组数组对象 let arr [{ id: "1", name: "张晓", age: 14 },{ id: "2", name: "张晓", age: 14 },{ id: "3", name: "张晓", age: 1…...
PyRoboPlan 库,给 panda 机械臂微分 IK 上大分,关节限位、碰撞全不怕
视频讲解: PyRoboPlan 库,给 panda 机械臂微分 IK 上大分,关节限位、碰撞全不怕 代码仓库:https://github.com/LitchiCheng/mujoco-learning 今天分享PyRoboPlan库,比之前的方式优点在于,这个库考虑了机械…...
【模态分解】EMD-经验模态分解
算法配置页面,也可以一键导出结果数据 报表自定义绘制 获取和下载【PHM学习软件PHM源码】的方式 获取方式:Docshttps://jcn362s9p4t8.feishu.cn/wiki/A0NXwPxY3ie1cGkOy08cru6vnvc...
Sentinel规则持久化pull模式核心源码解析
文章目录 前言一、服务端新增/修改规则1.1、repository.save1.2、publishRules 二、客户端接收规则三、持久化扩展3.1、持久化原理3.1.1、FileRefreshableDataSource3.1.1.1、super关键字3.1.1.2、firstLoad()方法 3.1.2、FlowRuleManager.register2Property 3.2、持久化实现 总…...
【go】--编译
go build -o [编译完成的可执行文件] [需要编译的.go文件]#例如 go build -o myapp main.go#确保编译的结果和当前运行环境相同 #查看arch uname -a在 Linux 中查看和修改 GOOS 和 GOARCH 环境变量: 1. 查看当前 Go 环境变量 # 查看所有Go相关的环境变量 go env# …...
【Spring底层分析】Spring IoC
Spring IoC IoC:控制反转。将对象创建和对象之间的调用交给Spring容器来管理。好处是降低了对象之间的耦合度。 DI:依赖注入。给bean对象注入依赖的对象。 大白话就是:Spring帮你创建对象,对象的属性如果依赖于某个对象…...
Ubuntu系统进程管理
在Ubuntu系统中,进程管理是系统维护和性能调优的重要部分。以下是关键命令和技巧的总结,帮助你有效管理系统进程: 1. 查看进程 ps 命令:查看当前进程快照。 bash ps aux # 查看所有运行中的进程(a所有用户…...
HDU2196 Computer 树形DP
原题链接 既然要查找每个节点的最远到达距离,由于该图是个树,我们就找从根节点向下遍历方向的终点的距离与先返回父节点再从最优的父节点沿着原来的方向的终点的距离的最大值 如图所示 也就是说,我们需要获得当前点的正距离最大值和正距离最…...
【第四十周】文献阅读:用于检索-增强大语言模型的查询与重写
目录 摘要Abstract用于检索-增强大语言模型的查询与重写研究背景方法论基于冻结LLM的重写方案基于可训练重写器的方案重写器预热训练(Rewriter Warm-up)强化学习(Reinforcement Learning) 创新性实验结果局限性总结 摘要 这篇论文…...