计算机组成原理之运算方法和运算器
文章目录
- 数据格式
- 定点数
- 浮点数
- 机器码表示
- 原码
- 反码
- 补码
- 数的补码与真值
- 移码
- IEEE754标准
数据格式
定点数
- 定点数就是数据的小数点的位置是固定不变的,通常将数据表示成纯小数或纯整数
- 以 n + 1 n+1 n+1 位数表示定点数,以 X n Xn Xn表示定点数的正负(0 为正数,1表示负数)
- 对于 n + 1 n+1 n+1位定点数,小数点位于 X n Xn Xn 和 X n − 1 Xn-1 Xn−1之间,当每一个数位都是0时,绝对值最小为0,当全部数位为1时,绝对值最大为 1 − 2 − n 1- 2^{-n} 1−2−n
- 对于定点整数,表示的范围是 0 < = ∣ x ∣ < = 2 n − 1 0<= |x|<=2^n -1 0<=∣x∣<=2n−1
浮点数
- 计算机中,任意的二进制数N 可以写成: N = 2 e . M N=2^e.M N=2e.M
其中,M 是一个纯小数,称为尾数,e 是浮点数的指数,是一个整数,称为阶码
机器码表示
原码
- 通俗来说就是,符号位加上二进制的绝对值
- 对于0,有
+0
和-0
的两种表示方法- 缺点:加法运算复杂
反码
- 正数的反码与原码相同,负数的反码就是负数的原码符号位不变,数值位取反
补码
- 对于正数的补码就是原码
- 对于定点整数,负数的补码在计算上面可以由反码加1得到;但是从定义上看,我们用n+1 为数来表示一个定点整数,其中 X n Xn Xn为符号位,那么就有
[ x ] 补 = 2 n + 1 − ∣ x ∣ [x]补 = 2^{n+1} - |x| [x]补=2n+1−∣x∣ ,其实从实际意义上就是用正数多于的部分来表示负数- 采用补码的话,0的表示方法只有一种,并且无论数字为正数还是负数,机器总是做加法运算
数的补码与真值
- [ x ] 补 = X n X n − 1 X n − 2 . . . . X 1 X 0 [x]_补 =X_nX_{n-1}X_{n-2}....X_1X_0 [x]补=XnXn−1Xn−2....X1X0
对于上面的形式: x = − 2 n X n + ∑ i = 0 n − 1 2 i x i x = -2^n X_n+\sum_{i=0}^{n-1}2^ix^i x=−2nXn+∑i=0n−12ixi- 如何更好理解?
- 对于正数来说,由于符号位为0,那么就直接根据权重展开就可以
- 对于负数来说,由于符号位为1,那么就是包括符号位共n+1位的情况下,就用 − 2 n -2^n −2n去加上偏移量,就是后面的一堆的数字的权重即可,具体而言就是以一个时钟为例子:
一共由60份,本来是 [ 0 , 60 ] [0,60] [0,60],但是现在我用 [ 0 , 30 ] [0,30] [0,30]来表示正数, [ 30 , 60 [30,60 [30,60来表示原本的 [ − 30 , 0 ] [-30,0] [−30,0],并且-30 的位置与30 的位置重合,那么具体如何求回本身的负数呢?就是目前的位置逆时针转动一圈即可,就是-60
移码
- 移码通常表示浮点数的阶码,移码的定义为:
[ e ] 移 = 2 k + e [e]_移=2^k+e [e]移=2k+e, 2 k > e > = − 2 k 2^k>e>=-2^k 2k>e>=−2k
其中 [ x ] 移 [x]_移 [x]移 为机器码,e 表示真值, 2 k 2^k 2k是一个固定的偏移值常数
IEEE754标准
- 对于32位浮点数:符号位在最高位(1位),E 是阶码位(8位),M 是尾数位(23位)
浮点数的指数真值e 变成阶码的时候加上127
即
E = e + 127 E =e+127 E=e+127
规格化表示:一个规格化的32位浮点数x 的真值表示为
x = ( − 1 ) S ∗ ( 1. M ) ∗ 2 E − 127 x=(-1)^S*(1.M)*2^{E-127} x=(−1)S∗(1.M)∗2E−127
相关文章:
计算机组成原理之运算方法和运算器
文章目录 数据格式定点数浮点数 机器码表示原码反码补码数的补码与真值 移码IEEE754标准 数据格式 定点数 定点数就是数据的小数点的位置是固定不变的,通常将数据表示成纯小数或纯整数以 n 1 n1 n1 位数表示定点数,以 X n Xn Xn表示定点数的正负&#…...

Redux Toolkit
本文作者为 360 奇舞团前端开发工程师 阅读本文章前,需要先了解下 redux 的基本概念与用法,Redux Toolkit 是建立在 Redux 基础之上的工具包,因此需要对 Redux 的基本概念有一定的了解,包括 Action、Reducer、Store、Middleware 等…...

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的商品识别系统(深度学习+UI界面+训练数据集+Python代码)
摘要:在零售行业的技术进步中,开发商品识别系统扮演着关键角色。本博文详细阐述了如何利用深度学习技术搭建一个高效的商品识别系统,并分享了一套完整的代码实现。系统采用了性能强劲的YOLOv8算法,同时对YOLOv7、YOLOv6、YOLOv5等…...

在亚马逊云EC2上启动PopOS
CloudEndure遇到的挑战 自从使用CloudEndure导入win11后就一发不可收拾,然后就可以尝试新的操作系统,比如system76的Pop!_OS,虽然上是基于ubuntu进行开发的,但是在使用安装CloudEndure 的时候还是遇到的了问题,可能是因为内核很新,也可能其他的一些原因. 如果说严格按照兼容性…...

Linux运维:磁盘分区与挂载详解
Linux运维:磁盘分区与挂载详解 1、磁盘分区的原理2、查看系统中所有的磁盘设备及其分区信息3、进行磁盘分区(对于sdb新磁盘)4、格式化分区5、挂载分区(临时挂载、永久挂载)6、取消挂载分区7、删除分区 💖Th…...

jeecg 项目 springcloud 项目有一个模块 没加载进来 只需要 把这个模块放到 可以加载到模块的位置 刷新依赖
springcloud 项目有一个模块 没加载进来 只需要 把这个模块放到 可以加载到模块的位置 刷新依赖...

spring boot使用mybatisplus访问mysql的配置流程
网上教程大多教人新建一个带对应组件的项目,本文记录如何在一个已有springboot2.x项目中,配置使用mybatisplus来访问mysql。包括使用wrapper和自己写mapper.xml的自定义函数两种和数据库交互的方式。 关于项目的创建,参考创建springboot 2.x…...

git 如何将多个提交点合并为一个提交点 commit
文章目录 核心命令详细使用模式总结示例 核心命令 git merge branch2 是将分支branch2的提交点合并到本地当前分支。 而在执行这条命令的时候,加一个选项--squash就表示在合并的时候将多个提交点合并为一个提交点。 git merge --squash branch2 先看squash单词的意…...

[C语言] 数据存储
类型意义: 1.类型决定内存空间大小(大小决定了使用范围) 2.如何看待内存空间的视角 类型分类 整形 类型大小(字节)short2int4long4long8 浮点型 类型大小(字节)float4double8long double12 构造类型 数组结构性struct联合union枚举enum 指…...

LoadBalancer负载均衡服务调用
LoadBalancer负载均衡服务调用 1、Ribbon目前也进入维护 Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端 负载均衡的工具。 简单的说,Ribbon是Netflix发布的开源项目,主要功能是**提供客户端的软件负载均衡算法和服务调用。**Ribbon…...
YoloV8实战:YoloV8-World应用实战案例
摘要 YOLO-World模型确实是一个突破性的创新,它结合了YOLOv8框架的实时性能与开放式词汇检测的能力,为众多视觉应用提供了前所未有的解决方案。以下是对YOLO-World模型的进一步解读: 模型架构与功能 YOLO-World模型充分利用了YOLOv8框架的先进特性,并引入了开放式词汇检…...

Python 导入Excel三维坐标数据 生成三维曲面地形图(体) 5-1、线条平滑曲面且可通过面观察柱体变化(一)
环境和包: 环境 python:python-3.12.0-amd64包: matplotlib 3.8.2 pandas 2.1.4 openpyxl 3.1.2 scipy 1.12.0 代码: import pandas as pd import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D from scipy.interpolate import griddata fro…...

cmake初识
cmake 什么是软件构建和编译工具cmake安装cmakewindowsLinux 通过cmake编译代码准备CMakeLists.txt注释块状注释cmake_minimum_required:确定cmake的最低版本project:定义工程名称:add_executable:定义工程会生成一个可执行程序准备生成可执行…...

Swift 入门学习:集合(Collection)类型趣谈-下
概览 集合的概念在任何编程语言中都占有重要的位置,正所谓:“古来聚散地,宿昔长荆棘;游人聚散中,一片湖光里”。把那一片片、一瓣瓣、一粒粒“可耐”的小精灵全部收拢、吸纳的井然有序、条条有理,怎能不让…...

nova 12 LTPO来了!LTPO动态自适应刷新率屏120Hz体验更流畅 ,1Hz阅读更省电
2023年12月26日,华为召开华为冬季全场景发布会,正式发布华为nova 12系列。全新华为nova 12 Pro/Ultra 上搭载1~120Hz LTPO 动态自适应刷新率屏,作为华为旗舰系列的LTPO特性现在来到了nova 系列上,到底表现如何呢? 手机…...

【rk3368 android6.0 恢复出厂设置功能】
rk3368 android6.0 恢复出厂设置功能 恢复出厂设置三种方法一,设置--进入恢复出厂设置页面二,发送广播形式三,命令形式总结 郑重声明:本人原创博文,都是实战,均经过实际项目验证出货的 转载请标明出处:攻城狮2015 恢复…...

闲聊电脑(7)常见故障排查
闲聊电脑(7)常见故障排查 夜深人静,万籁俱寂,老郭趴在电脑桌上打盹,桌子上的小黄鸭和桌子旁的冰箱又开始窃窃私语…… 小黄鸭:冰箱大哥,平时遇到电脑故障该咋处理呢? 冰箱…...
Vim 编辑器|批量注释与批量取消注释
添加注释 ctrl v 进入块选泽模式。上下键选中需要注释的行。按大写 I (shift i) 进入插入模式,输入注释符。按两次 ESC 退出,即完成添加注释。shift : 再输入 qw 保存退出。 取消注释 ctrl v 进入块选泽模式。上下键选中…...
Android 使用AIDL HAL
生成的目录结构 以audioControl 为例: 首先编写的是aidl文件。 其文件目录结构是:── android │ └── hardware │ └── automotive │ └── audiocontrol │ ├── AudioFocusChange.aidl │ ├── AudioGainConf…...

C++的一些基础语法
前言: 本篇将结束c的一些基础的语法,方便在以后的博客中出现,后续的一些语法将在涉及到其它的内容需要用到的时候具体展开介绍;其次,我们需要知道c是建立在c的基础上的,所以c的大部分语法都能用在c上。 目…...
Cursor实现用excel数据填充word模版的方法
cursor主页:https://www.cursor.com/ 任务目标:把excel格式的数据里的单元格,按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例,…...
椭圆曲线密码学(ECC)
一、ECC算法概述 椭圆曲线密码学(Elliptic Curve Cryptography)是基于椭圆曲线数学理论的公钥密码系统,由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA,ECC在相同安全强度下密钥更短(256位ECC ≈ 3072位RSA…...

Debian系统简介
目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版ÿ…...

解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八
现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet,点击确认后如下提示 最终上报fail 解决方法 内核升级导致,需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...

高频面试之3Zookeeper
高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个?3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制(过半机制࿰…...
在Ubuntu中设置开机自动运行(sudo)指令的指南
在Ubuntu系统中,有时需要在系统启动时自动执行某些命令,特别是需要 sudo权限的指令。为了实现这一功能,可以使用多种方法,包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法,并提供…...

深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南
🚀 C extern 关键字深度解析:跨文件编程的终极指南 📅 更新时间:2025年6月5日 🏷️ 标签:C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言🔥一、extern 是什么?&…...

华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建
华为云FlexusDeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色,华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型,能助力我们轻松驾驭 DeepSeek-V3/R1,本文中将分享如何…...

tree 树组件大数据卡顿问题优化
问题背景 项目中有用到树组件用来做文件目录,但是由于这个树组件的节点越来越多,导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多,导致的浏览器卡顿,这里很明显就需要用到虚拟列表的技术&…...
Fabric V2.5 通用溯源系统——增加图片上传与下载功能
fabric-trace项目在发布一年后,部署量已突破1000次,为支持更多场景,现新增支持图片信息上链,本文对图片上传、下载功能代码进行梳理,包含智能合约、后端、前端部分。 一、智能合约修改 为了增加图片信息上链溯源,需要对底层数据结构进行修改,在此对智能合约中的农产品数…...