【计算机组成体系结构】移码 | 定点小数的表示和运算

news/2024/7/7 18:48:37

一、移码

上篇我们提到了原码,反码和补码的表示形式和如何转换。这篇我们会提到一个新的概念—移码。移码也很简单,其实就是在补码的基础上把符号取反即可。

值得注意的是,移码只能表示整数。而原码,反码和补码既可以表示整数又可以表示小数。

其次,移码和补码一样,对于真值0只有一种表示形式。 因此,对于8bit移码,表示范围为-128~+127。

把真值由大到小的对应的补码和其对应的移码列出,我们发现,移码-128是00000000,而127是11111111,如果按无符号整数解读,正好是无符号整数的0—255,这种规律使得用硬件电路对应移码大小非常方便,且移码经常用于浮点数的阶码当中。

各种码的基本特性总结

二、定点小数的表示和运算

定点小数的表示方法有三种,原码,反码和补码。与定点整数的唯一区别是,我们默认的小数点位置不同,因此不同位对应的位权自然也不同。

1.原码

可以看到,对于定点小数来说,原码的表示方法和定点整数基本一致。第一位表示符号位,但定点小数的小数点默认在符号位后面。所以对于0.1100000来说,表示的是+0.75,对于1.1100000来说,表示的是-0.75。 ( 定点小数的写法常常在符号位加 “ . ” )

2.反码和补码转换(和定点整数相同)

3.加减运算 

定点小数的加减运算和定点整数的加减运算相同,都是要先转化为补码再进行运算。 

(1)定点小数加法

(2)定点小数减法

4.定点小数&定点整数

对于定点小数,原码和反码同样的有相同的表示范围和转化方式。而对于定点小数的补码,最小值为-1,并且同样真值0只有一种补码。

定点小数和定点整数还有一个区别,在对位数进行扩展的时候,扩展的位置不同,如上图所示。如果把4bit的定点小数扩展为8bit,则需要在数值位末尾加0,而对于定点整数则是在符号位后,数值位头部加0。


http://lihuaxi.xjx100.cn/news/1619065.html

相关文章

redis知识点整合

Redis是一种开源的内存数据结构存储系统,常用于缓存、消息队列、数据存储等场景。以下是Redis的一些常见知识点整合: 1. 数据结构:Redis支持多种数据结构,包括字符串、哈希表、列表、集合、有序集合等,每种数据结构都…

【Java】Math 类

java.lang.Math(类):Math包含执行基本数字运算的方法。它不能创建对象,它的构造方法被"私有"了。因为它内部都是“静态方法”,通过“类名”直接调用即可。 方法名称说明public static int abs(E e)返回绝对值…

LInux文件权限相关知识介绍

LInux文件权限相关知识分享😎 前言🙌Linux相关权限的概念:文件类型基本权限文件访问权限的相关设置方法chmod① 用户表示符/-权限字符②三位8进制数字 总结撒花💞 😎博客昵称:博客小梦 😊最喜欢…

普冉PY32系列(八) GPIO模拟和硬件SPI方式驱动无线收发芯片XN297LBW

目录 普冉PY32系列(一) PY32F0系列32位Cortex M0 MCU简介普冉PY32系列(二) Ubuntu GCC Toolchain和VSCode开发环境普冉PY32系列(三) PY32F002A资源实测 - 这个型号不简单普冉PY32系列(四) PY32F002A/003/030的时钟设置普冉PY32系列(五) 使用JLink RTT代替串口输出日志普冉PY32…

刚体动力学-牛顿欧拉方程(刚体旋转)

Newton-Euler方程用来描述刚体的运动: 欧拉第一定律 刚体的线动量 p \mathbf p p的变化率等于所有外力的合数 F e x t F_{\mathrm{ext}} Fext​作用于刚体: F e x t d p d t \mathbf F_{\mathrm{ext}}\frac{d \mathbf{p}}{d t} Fext​dtdp​ 构成刚体…

GO 语言的并发模式你了解多少?

工作中查看项目代码,发现会存在使用 GO 语言做并发的时候出现各种各样的异常情况,有的输出结果和自己期望和设计的不一致,有的是程序直接阻塞住,更有甚者直接是程序 crash 掉。 实际上,出现上述的情况,还是…

ONNX推理流程

文章目录 python版API推理流程 python版API推理流程 使用netron工具查看onnx网络结构 如下图,可以看出此次要使用的网络输入为: 输入名称:input输入形状:[1, 3, 256, 256]输入数据类型:float32 网络的输出为&#xff1…

leetcode:1929. 数组串联(python3解法)

难度&#xff1a;简单 给你一个长度为 n 的整数数组 nums 。请你构建一个长度为 2n 的答案数组 ans &#xff0c;数组下标 从 0 开始计数 &#xff0c;对于所有 0 < i < n 的 i &#xff0c;满足下述所有要求&#xff1a; ans[i] nums[i]ans[i n] nums[i] 具体而言&am…