计组--信息编码和数据表示and运算方法运算器(复习专用)

文章目录

  • 前言
  • 一、数值的格式
  • 二、定点机器数的表示方式
    • 1.原码表示法:
    • 2.补码表示法:
    • 3.反码表示法:
    • 4.移码表示法:
  • 三、浮点机器数的表示方式(规格化)
  • 四、定点数的加减乘除运算
  • 五、定点运算器的组成与结构
  • 六、浮点运算
  • 总结


前言

学无止境,笔勤不辍。真正开始复习计组,就会发现 它 真的难…笔者这次整理了有关补码、移码、原码、反码表示的方法、浮点数的表示 and与它们相关的计算,和硬件实现结构和操作的知识点,希望能給大家一些帮助,同时也希望大家多多分享易错点…


一、数值的格式

一般参与计算机运算的数值数据有两种:
1.无符号数:所有的二进制数据位都用来表示数值本身,无正负
2.有符号数:一般最高位是符号位,代表正负,不代表本身数值大小
当有符号数和无符号数位数相等时,表示的范围是不同的
本身计算机硬件无需区分有符号数或是无符号数,通过程序不同指令来区分即可

定点表示法:约定机器数的小数点位置是固定不变的
浮点表示法:浮点数N由三部分组成,阶码E(定点整数表示) M尾数(定点小数表示) R阶码的底(一般默认为2、8、16)
浮点数的小数点位置由阶码决定,随阶码大小变化而变化其实总的来说,精度由尾数决定,大小由阶码决定。
计算机的精度:1.计算机能表示的最大负数–副精度 2.计算机能表示的最小正数–正精度
精度由机器数的编码形式、位数、格式决定
当然,由于精度问题,会出现不同种类溢出问题,

1.位于最大负数和最小正数之间,计算机直接将其视为0处理,称为下溢
2.当机器数大于最大正数,称为正溢出
3.当机器数小于最小负数,称为负溢出

定点数and浮点数的异同点:
1.计算机所能代表的都是一系列的离散的点,并且采用近似的操作
2.硬件字长有限,无论定点数还是浮点数,都会溢出
3.定点数是均匀分布的,浮点数分布是离0点近密远疏的

二、定点机器数的表示方式

1.原码表示法:

1.形式:将真值中的正号用"0"表示,负号用"1"表示,放置在最高位,数值部分不变
2.特点:
1.0既可用正数原码表示,也可以用负数原码表示即 0的原码不唯一,占用了两个编码。
3.范围:
n+1位机器数条件下:
定点整数:(-(2n-1),(2n-1)) 定点小数(-(1-2-n),(1-2-n))
4.运算:
运算时,符号位单独处理,将真值的绝对值进行相加减,在判断符号位正负。
5.用途:
主要用于浮点数尾数的运算。

2.补码表示法:

1.形式:正数,符号位是"0",数值位是真值绝对值;负数,符号位是“1”,数值位是按位取反后末位+1
2.特点:
真值0唯一
3.范围:
n+1位机器数条件下:
定点整数:(-2n,2n-1) 定点小数:(-1,(1-2-n))
4.运算:
基本上加减运算都用补码
5.用途:
用补码表示有符号整数

3.反码表示法:

1.形式:正数,符号位是"0",数值为是真值绝对值;负数,符号位是"1",数值位将真值绝对值按位取反
2.特点:
真值"0"的表示不唯一,占用了全"0"编码和全"1"编码
3.范围:
n+1位机器数条件下:
与原码相同
4.运算:
基本不用
5.用途:

4.移码表示法:

只用来表示定点整数ps.笔者也不是特别理解
1.形式:正数,符号位是"1",数值位是真值绝对值;负数,符号位是"0",数值位按位取反后+1
2.特点:
真值"0"的表示唯一
3.范围:
定点整数:(-2n,2n-1),-2n编码全0
4.运算:
适用于比较运算,无论正负,均从符号位开始,逐位比较大小即可
5.用途:
暂不作总结…

三、浮点机器数的表示方式(规格化)

1.规格化的阶码的底R为2的尾数M应该满足的条件为:2-1<=|M|<=1,无前导零
判断:若M是原码表示,则最高有效位为1即可,形式如x.1xxxx…
若M是补码表示,则最高有效位和符号位要相异,形式如0.1xxxxx…或1.0xxxxxx…
2.对于非规格化的尾数,要对其进行规格化操作:对于原码,若符号位是0,必须左移,操作为(尾数M每左移一位,阶码减一),直到形式为x.1xxxx…;对于补码形式,当符号位和最高位相同时也必须左规,直到符号位和最高位相异…
注意,格式化的浮点机器数表示范围和非规格化的浮点数机器数表示范围不一定相等
大数和小数相加减的时候,可能会出现大数吃小数的现象,就是因为浮点数疏密不均,导致小数直接被大数吸收
3.IEEE754浮点数格式
1.单精度:总位数32位,格式MsEM,数符位+阶码+数值位,规格化真值计算:(-1)Ms *(1.M)*2E-127 非规格化真值计算:(-1)Ms *(0.M)*2-126
2.双精度:将其中的127改成1023 126改为-1022即可
规格化IEEE754浮点数的阶码不全是1也不全是0
规格化时,尾数采用隐藏位,即原码表示的规格化尾数的数值最高位的1省略,可多出一位有效位

四、定点数的加减乘除运算

1.移位运算:1.补码算术左移,最高位移出,低位补"0",补码算术右移,低位移出,高位补符号位,即若为负数补"1",正数补"0";原码(andIEEE754浮点数的尾数)算数左移,符号位不变,数值最高位移出,低位补"0",算术右移,符号位不变,低位移出,高位补"0"
注意可能会有溢出
实现:可用属于组合逻辑电路的桶形移位器…
2.加减运算:
基本都采用补码形式,涉及了各类形式码和补码之间的转化
溢出:1.正溢出,正确结果是正数,结果算出是负数 2.负溢出,正确结果是负数,结果算出是正数。
异号两数相加,同号两数相减,绝对不会发生溢出
溢出的判断:

1.进位位判溢法:数值最高有效位和符号位的进位相同时,不溢出,否则溢出
2.双符号位判溢法:重复一位符号位参与计算,观察两个符号位加减之后是否相同,不相同则溢出 
3.单符号位判溢法:靠人工...

移码相加减:最好将另一计算数转为补码,进行相加减…
判溢时,若使用双符号判溢法,则移码表示的那个计算数复写符号位时恒为0,当最高符号位为1时溢出…
由于笔者期末考不涉及乘法和除法运算..因此就简单介绍一下原码形式的串行乘法和除法...
3.乘法运算(X*Y)

ps,部分积和乘数|Y|写在同一行
1.初始化部分积为0,乘数为|Y|
2.若|Y|最右边数位1,则部分积+|X|;若为0,则部分积+0
3.整体右移一位
 4.最终得到答案

4.乘法运算(X/Y)

ps,商和被除数|X|写在同一行
1.商初始化为0,被除数为|X|
2.第一次被除数-|Y|若符号位位0,商上1,左移一位再减去|Y|求下次的部分余数;若符号位是1,商上0,左移一位再加上|Y|求下次的部分余数
3.整体右移一位
4.循环操作,最后一次若商上0,要加上|Y|恢复余数

五、定点运算器的组成与结构

1.运算器是在控制器的控制下,完成数据的算术逻辑运算,组成部件一般为算法逻辑部件(ALU,核心部件)、暂存器(存放运算数据和结果)、通用寄存器堆(访问使用到的数据)、标志寄存器(记录运算器上次的结果状态)、内部总线(信息通道)、可选电路(包括数据选择器、移位器、三态缓冲器)等构成
有单总线、双总线两种结构
数据通路:源部件将数据送入总线,目的部件从总线接受数据,这个过程需要一个CPU周期,各个总线源部件的数据输出使能信号不能同时有效,即无论何时,只允许一个部件将数据送入总线,分时享用总线
一个CPU周期内,某条总线上的数据必须是唯一,且不能保留到下一CPU周期
多端口寄存器堆:能够同时对一组寄存器进行读出或者写入多个数据
标志寄存器:

1.ZF(标志为0寄存器):运算结果全为0,置1;不全为0,置0
2.CF(进位/借位寄存器):CF=1,发生进位/借位,否则置0。只对无符号数运算有意义
3.OF(溢出标志):OF=1,溢出;OF=0,无溢出,对有符号数运算有意义
4.SF(符号标志):与运算结果的符号位相同,对有符号数有用
5.PF(奇偶标志):结果中1的个数为偶数,置1,否则置0

六、浮点运算

1.浮点数运算时,一般参与运算的机器数时规格化的,计算结果也要时规格化的
2.浮点数加减运算:

规则:1.指数(E)相同,需要对阶,且小对大,最终以大的为基准 2.尾数进行相加减 3.结果规格化,左规或右规 4.舍入处理
舍入处理的方法:
1.截断法:将多余尾数直接去除
2.末位恒置1法:无论多余尾数如何,在舍入结果的最末位置置1
3.0舍1入法:多余位最高位为1,进1;否则舍去
IEEE754浮点数舍入方法:
1.向上舍入,靠近+∞:若为正数,只要多余位数不全为0,则进1;若为负数,则直接截断法
2.向下舍入,靠近-∞:若为负数,只要多余位数不全为0,则进1;若为正数,则直接截断法
3.向0舍入:无论正负,均使用截断法,不过会累积误差
4.就近舍入:即类似于四舍五入

乘除运算不涉及...


总结

以上就是今天要讲的内容,本文跨时长极大,主要是完成各种期末大作业…笔者也正式进入了期末周,将持续对计组和数据库的知识点、章节进行持续更新…希望大家多多关注…

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

CNN神经网络猫狗分类经典案例

因为有猫和狗两类&#xff0c;所有在data/train目录下&#xff0c;再建两个目录data/train/dog和data/train/cat&#xff1a; 同理&#xff0c;其他的data/validation和data/test目录下&#xff0c;再建两个目录&#xff1a;cat和data/&#xff0c;在cat和dog目录下&#xff0c…

Large Language Model based Multi-Agents: A Survey of Progress and Challenges

目录 摘要简介背景单一智能体系统单智能体 vs .多智能体系统 剖析多智能体系统&#xff1a;接口、剖析、通信和能力智能体 - 环境接口智能体画像智能体通信能力获取 摘要 大型语言模型( Large Language Models&#xff0c;LLMs )在各种任务中都取得了令人瞩目的成功。由于LLMs…

你好,复变函数2.0

第一行&#xff1a;0 或 1 第二行&#xff1a;&#xff08;空格&#xff09;函数&#xff08;后缀&#xff09; #pragma warning(disable:4996) #include <easyx.h> #include <stdio.h> #include <math.h> #define PI 3.141592653589793 #define E 2.71828…

【ai】tritonserver 的测试sdk部署

HybrIKHybrIK 环境 conda create -n hybrik python=3.8 -y 虚拟环境 zhangbin@ubuntu-server:~/miniconda3/bin$ pip config set global.index-url https: …

make与makefile

目录 一、make的默认目标文件与自动推导 二、不能连续make的原因 执行原理 touch .PHONY伪目标 make指令不回显 makefile多文件管理 简写依赖方法 三、回车与换行 四、缓冲区 一、make的默认目标文件与自动推导 假设这是一个makefile文件&#xff0c;make的时候默认生…

Kubernetes Dashboard

Minikube 环境搭建 Kubernetes 的基本架构 Kubernetes 声明式语言 YAML YAML操作Kubernetes核心对象 CentOs搭建Kubernetes集群 Kubernetes进阶对象Deployment、DaemonSet、Service Kubernetes进阶对象Ingress、Ingress Class、Ingress Controller Kubernetes集群部署项目实践 …

XTDrone-无人机与无人船协同初步-配置教程

说明&#xff1a;配置该教程时所使用的是Ubuntu20.04 1 海洋与无人船仿真环境搭建 cp -r ~/XTDrone/sitl_config/usv/* ~/catkin_ws/src/ cd catkin_ws catkin build # or catkin_make 说明&#xff1a;由于官方所编写的脚本时几年之前的&#xff0c;所以很多东西不符合现在…

深入分析并可视化城市轨道数据

介绍 中国城市化进程加速中&#xff0c;城市轨道交通的迅速扩张成为提升城市运行效率和居民生活品质的关键。这一网络从少数大城市延伸至众多大中型城市&#xff0c;映射了经济飞跃和城市管理现代化。深入分析并可视化城市轨道数据&#xff0c;对于揭示网络特性、评估效率、理…

JavaScript学习笔记(二)

12、数字 常规用法和java的用法相似&#xff0c;就不再做详细的记录, JavaScript 数字 以下只记录特殊用法&#xff1a; 12.1 数字字符串运算 在所有数字运算中&#xff0c;JavaScript 会尝试将字符串转换为数字&#xff1a; var x "100"; var y "10"…

MySQL性能问题诊断方法和常用工具

作者介绍&#xff1a;老苏&#xff0c;10余年DBA工作运维经验&#xff0c;擅长Oracle、MySQL、PG数据库运维&#xff08;如安装迁移&#xff0c;性能优化、故障应急处理等&#xff09; 公众号&#xff1a;老苏畅谈运维 欢迎关注本人公众号&#xff0c;更多精彩与您分享。MySQL运…

python入门基础知识(错误和异常)

本文部分内容来自菜鸟教程Python 基础教程 | 菜鸟教程 (runoob.com) 本人负责概括总结代码实现。 以此达到快速复习目的 目录 语法错误 异常 异常处理 try/except try/except...else try-finally 语句 抛出异常 用户自定义异常 内置异常类型 常见的标准异常类型 语法…

每天写java到期末考试--接口1--基础--6.22

规则&#xff1a; 练习&#xff1a; 抽象类的抽象方法 动物类Animal package 期末复习;public abstract class Animal {private String name;private int age;//1.空构造public Animal(){}public Animal(String name,int age){this.ageage;this.namename;}public String getNa…

【Java毕业设计】基于JavaWeb的服务出租系统

本科毕业设计论文 题目&#xff1a;房屋交易平台设计与实现 系 别&#xff1a; XX系&#xff08;全称&#xff09; 专 业&#xff1a; 软件工程 班 级&#xff1a; 软件工程15201 学生姓名&#xff1a; 学生学号&#xff1a; 指导教师&#xff1a; 导师1 导师2 文章目录 摘…

C++入门 vector部分模拟实现

目录 vector大致框架 vector常见接口模拟实现 begin迭代器 & end迭代器 capacity( ) & size( ) reserve operator[ ] push_back( ) & pop_back( ) sort vector大致框架 vector的内部的成员变量大概有三部分构成&#xff1a; namespace bit {template<c…

java中的日志

springboot自带slf4j框架和logback&#xff0c;我们可以移除spring的logging&#xff0c;然后再带入自己的日志框架。 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><exclusio…

Linux中tar压缩与解压缩

TAR是Unix/Linux中常用的归档工具&#xff0c;它可以对文件或目录进行打包但不压缩&#xff0c;或者配合其他工具进行压缩。 压缩文件或目录 以下是一些基本的tar压缩命令&#xff1a; 1.压缩单个文件&#xff1a; tar -cvf archive.tar file1 2.压缩多个文件&#xff1a; t…

毕业季带给我的五个启示

每到毕业季&#xff0c;校园里总是充满了复杂的情绪。有人欢笑&#xff0c;有人落泪。同样的四年大学生活&#xff0c;为何结局如此不同&#xff1f;本文将从多个角度探讨如何实现综合改变&#xff0c;解释在交友、机会和心态上的关键因素&#xff0c;揭示“慢就是快”的真理。…

Vulnhub--OS-HACKNOS-2.1

渗透复现 目标站点为wordpress&#xff0c;通过wpscan进行漏洞扫描发现漏洞插件 通过漏洞插件存在的目录穿越漏洞成功读取/etc/passwd文件中flag用户的密码 SSH登录flag用户后在备份文件中找到rohit用户的密码 切换rohit用户&#xff0c;rohit用户能够以root权限执行任何文…

colima配置docker镜像源

只在 colima ssh 环境下修改 docker 配置文件是无效的&#xff0c;我们需要修改 colima 配置文件才能使 docker 镜像源生效。 此时你需要进入到~/.colima/default目录下编辑colima.yaml文件。该文件是 colima 的配置文件。内容如下图所示&#xff0c;我这里配置了许多家的镜像源…

手写方法实现整型例如:123与字符串例如:“123“相互转化(下篇)

目录 一、前言 二、整型转化为字符串 1. 初始化变量 2.数字1转字符1 3.取出value中的每一项数字 4.将字符放入字符数组中 5.最终代码 三、最后 一、前言 本篇文章紧跟上篇文章&#xff0c;本片内容为整型转化为字符串类型。至于我为什么要分两篇文章&#xff0c;主要…