首页 > 其他分享 >计算机组成原理—运算方式

计算机组成原理—运算方式

时间:2023-05-31 18:13:50浏览次数:38  
标签:真值 运算 符号 尾数 xxx 原理 原码 计算机

计算机组成原理—中央处理器(1)

四、计算机的运行方式

1.有符号数和无符号数

计算机的数均存在寄存器中,通常称寄存器的位数为机器字长

1.1无符号数

没有表示符号的数,每一位均可存放数值。eg:若机器字长16位,则可表示无符号数的范围为0-65535(2^16 - 1)

1.2有符号数

符号的“+”、“-”用“0”和“1”来表示。0=>正;1=>负

真值:带有正负的二进制数字表达

机器数:真值的机器表示


计算码值。前提:已知真值

原码 反码 补码
正数整数 0,真值 同原码 同原码
正数小数 0.小数后真值 同原码 同原码
负数整数 1,去负号真值 首位不变,后位取反 首位不变,最后1位加1
负数小数 1.小数后无负号真值 首位不变,后位取反 首位不变,最后1位加1

以8进制为例,不同码对应的真值范围

image

  • 移码

已知真值,求其移码

移码 = 真值 + 2^n(真值位数) 最高位为正负位

注:二进制的加减法

2.数的定点、浮点表示

2.1定点表示

image

2.2浮点表示

N = S * r^j

S:是尾数(可正可负,首位非零)

j:为阶数(可正可负)

r:为基数(2、4、8、16进制)


eg:N = 11.0101 =>0.110101 * 2^10(二进制)


2.2.1此为浮点位的表示形式

image

2.2.2 定点数和浮点数的比较
定点数 浮点数
范围
精度
运算步骤
溢出判断 本身判断 规格化阶数判断

3.定点运算

3.1移位

小数点不动,左移,绝对值增大;反之减小

  • 移位规则

符号位不变 +

image

3.2加减运算

全部换成补码进行 +运算

image

:超出的位丢掉,所得的结果为补码(要还原)

  • 溢出判断

一个符号位:正正 ->负或是负负->正为溢出;若有进位,则与原操作 数符号对比,相同,未溢出,反之,溢出

两个符号位:10/01为溢出,最高位为正真的符号位

4.浮点四则运算

4.1加减运算

  • 对阶(小阶向大阶对齐)

先写出要运算的数的计算机补码表示

image

再求阶差

image

结果为负且等于(注意结果是补码)-2,说明y的阶大于x的阶,x->y对齐:尾数向右移动两位,x的阶要增大2

image

  • 尾数求和

直接相加即可

image

  • 规格化

左规:将结果00.0xxx => 00.1xxx

​ 将结果11.1xxx => 11.0xxx

​ 尾数向左移动,阶数减小

右规:将结果01.xxx ->00.1xxx

​ 将结果10.xxx ->11.0xxx

​ 尾数向右移动,阶数减大

image

  • 舍入

“0”舍“1”入,尾数右移时,同”四舍五入“

”恒置1“法,尾数右移时,最右位恒为1

  • 溢出判断

根据阶码来判断

image

标签:真值,运算,符号,尾数,xxx,原理,原码,计算机
From: https://www.cnblogs.com/wht-de-bk/p/17446943.html

相关文章

  • 关系型运算符 == ,不同字符类型比较,会有个转换
    publicstaticvoidmain(String[]args)throwsException{charc='建';System.out.println((int)c);booleanflag=24314==c;//--不同的字符类型,这里有个自动转型的支持System.out.println(flag);}数据类型之间,提供有转型支......
  • LVS原理详解以及部署
    linuxvirtualserver简称LVS,Internet的快速增长使多媒体网络服务器面对的访问数量快速增加,服务器需要具备提供大量并发访问服务的能力,因此对于大负载的服务器来讲,CPU、I/O处理能力很快会成为瓶颈。由于单台服务器的性能总是有限的,简单的提高硬件性能并不能真正解决这个问题。为......
  • Redis主从复制、哨兵、集群原理部署介绍
    Redis主从复制、哨兵、集群原理部署介绍原创 程序话题 IT当时语 2023-04-1820:26 发表于广东收录于合集#架构设计22个#分布式系统17个#Redis4个#微服务11个#分布式锁3个Redis主从复制、哨兵、集群原理部署介绍Redis主从复制的核心原理在分布式架构设计中......
  • JSP原理深度刨析
    1. 我的第一个JSP程序  351.1 原理  35 在WEB-INF目录之外创建一个index.jsp文件,然后这个文件中没有任何内容。- 将上面的项目部署之后,启动服务器,打开浏览器,访问以下地址:  - http://localhost:8080/jsp/index.jsp 展现在大家面前的是一个空白。  - 实际上访问以上的......
  • Spring Boot中starter的原理是什么?如何实现一些starter?
    原理:核心就是@EnableAutoConfiguration注解,在该注解中有一个@Import注解。@Import注解导入了配置类:AutoConfigurationImportSelector.class。在该类中使用SpringFactoriesLoader.class加载配置文件META-INF/spring.factories。实现也starter需要实现一下步骤:autoconfigure模块......
  • 运算方法与运算器
    2.1真值:正负符号+二进制的绝对值机器数:0/1+二进制的绝对值正:0  负:12.2数的机器码表示正数:原码=反码=补码负数:原码--符号位不变,其余位取反-->反码--+1-->补码移码:将补码的符号位取反纯小数原码表示: 注意:原码的0有两种表示方式;使用补码,符号位可参与运算纯小数补码......
  • 数据类型与运算符
    数据类型instanceof作用classParent{}classChildextendsParent{}classChild2extendsParent{}publicstaticvoidmain(String[]args){Parentitem=newChild();System.out.println(iteminstanceofObject);System.out.println(itemins......
  • C++ 运算符
     运算符是一种告诉编译器执行特定的数学或逻辑操作的符号。C++内置了丰富的运算符,并提供了以下类型的运算符:算术运算符关系运算符逻辑运算符位运算符赋值运算符杂项运算符本章将逐一介绍算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符和其他运算符。ht......
  • C/C++杂记:运行时类型识别(RTTI)与动态类型转换原理
    运行时类型识别(RTTI)的引入有三个作用:配合typeid操作符的实现;实现异常处理中catch的匹配过程;实现动态类型转换dynamic_cast。1.typeid操作符的实现1.1.静态类型的情形C++中支持使用typeid关键字获取对象类型信息,它的返回值类型是conststd::type_info&,例:#include<type......
  • C/C++杂记:虚函数的实现的基本原理
    1.概述简单地说,每一个含有虚函数(无论是其本身的,还是继承而来的)的类都至少有一个与之对应的虚函数表,其中存放着该类所有的虚函数对应的函数指针。例:其中:B的虚函数表中存放着B::foo和B::bar两个函数指针。D的虚函数表中存放的既有继承自B的虚函数B::foo,又有重写(override)了基......