【定点数运算】定点的乘法和加法
目录
定点的介绍
定点的优势
定点数的乘法和加法
乘法
加法
定点的介绍
在之前的博客中介绍了定点数和浮点数,想要了解的可以前往以下链接:
【定点和浮点】定点数与浮点数的解释
定点的优势
使用定点表示有什么优势?为什么不简单地将所有值规范化为整数范围并处理整数。将所有值规范化为整数,这会产生非常不可读的代码和文档。在观察某些代码时,定点通常更加方便。例如,如果我正在查看源代码,如下代码所示:
c0 = fixbv(0.0032, min=-1, max=1, res=2**-15)
c1 = fixbv(-0.012, min=-1, max=1, res=2**-15)
可以很容易地将其与滤波器的系数联系起来,但是如果只看到整数:
c0 = intbv(0x0069, min=-2**15, max=2**15)
c1 = intbv(-0x0189, min=-2**15, max=2**15)
需要在看其他信息。仅整数很难理解这些值要表示的内容。
除了表示优势之外,用于处理舍入和溢出的情况时,在定点数据中也很常见。
定点数的乘法和加法
定点数的乘法操作和普通的十进制数相乘可以用很类似的方法——列式子计算;同理定点数的加法也是类似。
乘法
在计算定点数的乘法时,只要将数值转换成二进制,可以暂时先忽略小数点的存在,因为之前说过,定点数之所以叫定点数,就是因为它的小数点位置是固定的,因此,可以先做计算再定小数点的位置。
下面是一个示例,以两个数分别为 6.5625(一共8位,其中3位整数部分,4位小数部分)和 4.25 (一共8位,其中5位整数部分,2位小数部分)两个数的相乘。
0110.1001 == 6.5625
000100.01 == 4.2501101001 x 00010001 ------------0110100100000000 00000000 00000000 01101001 00000000 0000000000000000 --------------------x000011011111001 == 0000011011.111001 == 27.890625
乘积结果所需的位数是两个数值的位数之和。通常,乘法和加法的结果要调整大小并减少位数。在定点中,这具有直观的意义,因为较小的小数位被丢弃,并且值根据丢弃的位四舍五入。这样可以减少数据的位宽,以达到减少位宽的作用。
加法
加法稍微复杂一些,因为在做加法之前需要对齐小数点。使用与乘法例子中相同的数值:
0110.1001 == 6.5625
000100.01 == 4.250110.1001 + 000100.01 -------------001010.1101 == 10.8125
【定点数运算】定点的乘法和加法相关推荐
- 7-2一元多项式的乘法与加法运算
title: "7-2一元多项式的乘法与加法运算(20" date: 2018-06-14T01:09:46+08:00 tags: [""] categori ...
- PTA:编程题:7-1 一元多项式的乘法与加法运算 (20 分)
大一下半期数据结构 数据结构题目集 一元多项式的乘法与加法运算 设计函数分别求两个一元多项式的乘积与和. 输入格式: 输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项 ...
- 7-2 一元多项式的乘法与加法运算 (20 分)
7-2 一元多项式的乘法与加法运算 (20 分) 设计函数分别求两个一元多项式的乘积与和. 输入格式: 输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数(绝 ...
- 浙大数据结构题集02-线性结构2 一元多项式的乘法与加法运算python版
浙大数据结构题集02-线性结构2 一元多项式的乘法与加法运算python版 设计函数分别求两个一元多项式的乘积与和. 本文用链表做的 输入格式: 输入分2行,每行分别先给出多项式非零项的个数,再以指数 ...
- 2.2 多项式乘法与加法运算(线性结构,C)
多项式乘法与加法运算 设计函数分别求两个一元多项式的乘积与和 题意理解 题意理解 和 积 求解思路 多项式表示 两种表示方式 在事先已经知道具体多少项的时候,本题较好的实现方法:==动态数组== 链表 ...
- PTA->一元多项式的乘法与加法运算
一元多项式的乘法与加法运算 1.问题描述 2.问题分析 2.1定义多项式数据结构结点数据PolyNode 2.2将数据结点连接到多项式后面Attach 2.3读入多项式数据结点ReadPoly 2.4 ...
- 习题3.6 一元多项式的乘法与加法运算 (20 分)(有测试点具体数据)c语言链表版本
习题3.6 一元多项式的乘法与加法运算 (20 分) 设计函数分别求两个一元多项式的乘积与和. 输入格式: 输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数 ...
- 2 计算机组成原理第二章 数据的表示和运算 定点数运算 浮点数运算
文章目录 1 进制转换 2 定点数表示及其运算 2.1 定点数表示 2.1.1 真值→补码 2.1.2 补码→真值 2.1.3 [XT]补 →[-XT]补 2.1.4 真值.原码.反码.补码转换关系图 ...
- Verilog学习笔记——有符号数的乘法和加法
有符号数的计算在 Verilog 中是一个很重要的问题(也很容易会被忽视),在使用 Verilog 语言编写 FIR 滤波器时,需要涉及到有符号数的加法和乘法,在之前的程序中我把所有的输入输出和中间信 ...
最新文章
- python3+selenium入门08-鼠标事件
- StrongOD快捷键说明及其例子
- 特征值与特征向量的意义
- Nginx 学习笔记(四) Nginx+keepalived
- 移动开发框架,第【一】弹:QuoJs 官方文档(汉化版)
- WCF消息之XmlDictionaryWriter
- git-从入门到熟悉
- 饿了么分布式KV架构与实践
- PCWorld:谷歌成下一个微软式企业10大理由
- 实时系统性能测试指标及方法
- 解决-win10软件默认安装路径为C盘——修改注册表
- Mac系统安装consul
- 虚拟服务器架设教程,架设服务器虚拟主机教程
- 如何确定今天是星期几
- Android 超级轻量的版本更新库AppUpdate
- c语言利用查表法画正弦波,嵌入式C语言查表法在项目中的应用
- 【Linux分组权限】linux下创建用户分组及设置分组权限
- CSDN BLOG技术专家群工作平台发布公告
- VSCode C++环境配置及测试运行
- 基于腾讯云实时音视频(TRTC)的web端 多人人脸识别小游戏
热门文章
- 了解Gazebo的bumper插件
- 入侵网站的各种漏洞的利用
- gprs模块与主站通信
- linux下常用的软件
- python 仿真 电力系统自动化_电力系统自动化技术的应用及发展方向
- otc焊接机器人编程模拟软件_OTC焊接机器人精密焊接的编程技巧
- 基于显扬科技3D视觉相机的芯片外观检测系统
- php pusher,php,pusher_Linux 下php使用 Pusher 遇到一个难题,php,pusher,php-linux-环境-开发 - phpStudy...
- 方形图片 圆形图片 各种形状
- 生活中有什么值得坚持的好习惯?