【定点数运算】定点的乘法和加法

2023-11-10

目录

 

定点的介绍

定点的优势

定点数的乘法和加法

乘法

加法


 

定点的介绍

在之前的博客中介绍了定点数和浮点数,想要了解的可以前往以下链接:

【定点和浮点】定点数与浮点数的解释

定点的优势

使用定点表示有什么优势?为什么不简单地将所有值规范化为整数范围并处理整数。将所有值规范化为整数,这会产生非常不可读的代码和文档。在观察某些代码时,定点通常更加方便。例如,如果我正在查看源代码,如下代码所示:

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.25
          01101001  
        x 00010001  
      ------------
          01101001
         00000000 
        00000000  
       00000000  
      01101001    
     00000000      
    00000000
   00000000 
 --------------------
  x000011011111001   ==  0000011011.111001  ==  27.890625
 

乘积结果所需的位数是两个数值的位数之和。通常,乘法和加法的结果要调整大小并减少位数。在定点中,这具有直观的意义,因为较小的小数位被丢弃,并且值根据丢弃的位四舍五入。这样可以减少数据的位宽,以达到减少位宽的作用。

加法

加法稍微复杂一些,因为在做加法之前需要对齐小数点。使用与乘法例子中相同的数值:

0110.1001  == 6.5625
000100.01  == 4.25
            0110.1001  
        + 000100.01  
        -------------
          001010.1101  ==  10.8125

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【定点数运算】定点的乘法和加法 的相关文章

  • 随机信号分析实验(matlab仿真实验)

    一 实验内容 1 产生均匀分布的随机数 高斯分布的随机数和其他分布 瑞利 卡方 的随机数及画图 对生成的随机数进行分析 2 检验 1 中产生的均匀分布 高斯分布的数学期望和方差 并画出各种分布的随机变量的概率密度直方图 3 两组及多组独立的
  • FPGA同步复位和异步复位的区别以及设计处理

    FPGA复位信号的设计处理 同步复位 同步复位 同步复位信号跟触发器的时钟是同步的 只有在时钟的跳变沿到来之后才会生效 对应verilog代码如下 这种写法会被编译器综合成同步复位 always posedge clk begin if r
  • Xilinx 7系列芯片选型手册的资源量怎么看

    推荐阅读AMD官方文档 该文档介绍了各种资源的具体含义 链接 7 Series FPGAs Configurable Logic Block User Guide UG474 以XC7A35T为例 Logic Cells 逻辑单元 对于7系
  • 计算机的保护模式与实模式

    一 背景 80386开始 CPU有三种工作方式 实模式 保护模式和虚拟8086模式 只有在刚刚启动的时候是real mode 等到操作系统运行起来以后就切换到protected mode 实模式只能访问地址在1M以下的内存称为常规内存 我们
  • Verilog的基础知识

    Verilog的基本介绍 硬件描述语言发展至今已有二十多年历史 当今业界的标准中 IEEE标准 主要有VHDL和Verilog HDL 这两种硬件描述语言 一个设计往往从系统级设计开始 把系统划分成几个大的基本的功能模块 每个功能模块再按一
  • 采用Vivado 配置xilinx GTX的SATA设计

    从Vivado开始 配置GTX的时候 多了一个SATA协议支持 但有些小地方还需要自己另外设置 整理了一下 分享给大家 首先打开Transceivers wizard 打开页签 线速率和参考时钟选择 在协议里面选择SATA2或者SATA3
  • xilinx xdma PCIe中断bug

    xilinx xdma PCIe中断存在bug bug1 此中断虽然是msi或者msx中断 但是不中断cpu bug2 此中断不是边沿中断 而是电平中断 在驱动层需要不断地轮训查询中断事件 bug3 此中断持续时间必须长 而且在收到中断应答
  • [HDLBits] Exams/ece241 2014 q7a

    Design a 1 12 counter with the following inputs and outputs Reset Synchronous active high reset that forces the counter
  • 数据密集型应用系统设计(2)

    文章目录 数据模型与查询语言 NoSQL 数据库历史 关系数据库与文档数据库现状 数据查询语言 图状数据模型 小结 数据模型与查询语言 大多数应用程序是通过一层层叠加数据模型来构建的 例如 应用程序开发人员观测现实世界 通过对象或者数据结构
  • FPGA Lattice Diamond 开发环境搭建

    FPGA Lattice Diamond 开发环境搭建 Lattice Diamond 软件下载 在浏览器中输入 Lattice 的官网地址 http www latticesemi com 进入官网首页在上方选择产品系列选项 出现如下图所
  • 用matlab绘制系统函数的DTFT

    freqz函数 frequency response of digital filter 对于一个输入离散序列 输出离散序列的离散时间系统 我们可以用它的系统函数H Z 来描述这个系统 求这个系统函数的DTFT 可以得到这个系统的幅频响应和
  • Spartan-3E 上的随机数生成

    我需要在 Spartan 3E FPGA 上为我的遗传算法生成伪随机数 并且我想在 verilog 中实现它 您能给我任何关于此的指示吗 当然 Adam 的随机生成器是不可合成的 您必须显式创建一个LFSR 以下示例可能会有所帮助 它是一个
  • Verilog、FPGA、统一寄存器的使用

    我有一个问题 关于我正在开发的 AGC SPI 控制器在我看来奇怪的行为 它是用 Verilog 完成的 针对的是 Xilinx Spartan 3e FPGA 该控制器是一个依赖外部输入来启动的 FSM FSM的状态存储在状态寄存器它没有
  • 异步FIFO设计之格雷码

    目录 二进制转格雷码 格雷码转二进制 相邻的格雷码只有1bit的差异 因此格雷码常常用于异步fifo设计中 保证afifo的读地址 或写地址 被写时钟 或读时钟 采样时最多只有1bit发生跳变 在不考虑路径延时的情况下 因为源数据 读写地址
  • 同时读取和写入寄存器

    我计划在 FPGA 上用 VHDL 设计一个类似 MIPS 的 CPU CPU 将具有经典的五级管道 没有转发和危险预防 在计算机体系结构课程中 我了解到第一个 MIPS CPU 用于在时钟上升沿读取寄存器文件并在时钟下降沿写入 我使用的F
  • VHDL - PhysDesignRules:367

    当我尝试从 VHDL 代码合成 实现和生成程序文件时 我收到警告 当我尝试合成时出现此错误 WARNING Xst 647 Input
  • VHDL 中的 BRAM_INIT

    我正在模拟基于处理器的设计 其中程序存储器内容保存在 BRAM 中 我正在使用 VHDL 推断 BRAM 实现程序存储器 我试图避免使用 CoreGen 因为我想保持设计的可移植性 最终该设计将进入 FPGA 我想看看是否有一种方法可以使用
  • 从 OpenCV 代码到 FPGA 代码的转换是否比 Matlab 代码更容易? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我想做一个关于图像处理的项目 我想知道如果我想在FPGA上实现这个项目 我应该在第一阶段选择Matla
  • 映射 MMIO 区域写回不起作用

    我希望对 PCIe 设备的所有读写请求都由 CPU 缓存进行缓存 然而 它并没有像我预期的那样工作 这些是我对回写 MMIO 区域的假设 对 PCIe 设备的写入仅在缓存回写时发生 TLP 有效负载的大小是缓存块大小 64B 然而 捕获的
  • 学习 Verilog 的资源 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我是 Verilog 新手 有人可以推荐学习资源 书籍 视频 博客或任何他们有良好个人经验并帮助他们更

随机推荐

  • 几款主流好用的富文本编辑器(所见即所得常用编辑器)介绍

    富文本编辑器 富文本编辑器 Rich Text Editor RTE 是一种可内嵌于浏览器 所见即所得的文本编辑器 它提供类似于Office Word 的编辑功能 方便那些不太懂HTML用户使用 富文本编辑器的应用非常广泛 它的历史与图文网
  • CMOS图像传感器OV7725数据手册

    下载地址 阿里云盘分享https www aliyundrive com s RuxT3cpHpiK
  • windwos、linux在虚拟机中共享文件

    因为工作的关系 目前的工作机器是ubuntu桌面版 因为有时需要用到windows下的软件 因此装了个虚拟机virtualbox 在里面装个了个windows 为了能够让两个机器相互访问 需要设置一个共享文件夹 在网上找了一圈 基本上都是w
  • 【char类型转换】

    文章目录 前言 经典例题 典例1 变式1 典例2 总结 前言 今天我们一起来了解一下关于整形提升和进制转换的问题 经典例题 典例1 计算下面程序打印的结果 include
  • 牛客网算法教程-中级篇-第一章

    文章目录 学习目标 学习内容 学习时间 学习产出 1 旋转词 模拟 2 旋转矩阵 模拟 3 数轴覆盖 贪心 4 1 完整字符串1 括号字符串的有效性 栈 4 2 完整字符串2 缺失的括号 栈 4 3 完整字符串3 最长合法括号子串 栈 5
  • vue项目中使用http-proxy-middleware解决前端开发中跨域的问题

    使用方式 1 安装 npm install http proxy middleware save dev 2 使用 一般的使用 新建js文件 在此小编命名为proxy js const proxy require http proxy mi
  • rust输入输出

    一 获取命令行参数 很多语言获取命令行参数 是通过主函数的参数获得的 但Rust主函数是个无参数函数 命令行参数只能通过std env args 函数获得 std env args 返回一个迭代器 其中包含了程序名和后面所有参数 实例 fn
  • android 弹出选择框,简单通用弹出选择框

    LinearLayout ll LinearLayout getActivity findViewById R id log sel qyport ll setOnClickListener new View OnClickListener
  • windows输出文件的树状结构

    场景 今天突然看到同事的项目里面有一个文件 类型这样 项目的一个树状图 以前也看见过但是从来没有探究过 今天来看一下 描述 提示 需要windows 系统 其他系统需要安装tree windows系统下 我们可以打开我们的一个项目 在红框内
  • 传奇DBC数据库变量详细解释传奇DB文件详解

    传奇DBC数据DB文件详解 MagicDB MagicDB 是你所修炼的法术和各种技能 1 MagID 技能代号 2 MagName 技能名称 3 Effect Type 效果类型 使用技能时角色的动作效果 4 Effect 效果 技能产生
  • 【C++|排序算法】冒泡、快排、归并、堆排序算法模版

    目录 简介 冒泡排序 快速排序 归并排序 堆排序 结语 简介 Hello 非常感谢您阅读海轰的文章 倘若文中有错误的地方 欢迎您指出 昵称 海轰 标签 程序猿 C 选手 学生 简介 因C语言结识编程 随后转入计算机专业 获得过国家奖学金 有
  • 计算机操作系统--基础篇

    操作系统的演进 多道程序设计 早期批处理系统只能一次处理一个任务 多道程序设计使得批处理系统可以一次处理多个任务 多道程序设计是指在计算机内存中同时存放多个程序 多道程序在计算机的管理程序之下相互穿插运行 多道程序的管理是操作系统的重要功能
  • Security-Onion-Solutions安全洋葱安装方法

    Security Onion Solutions安全洋葱安装方法 securityonion安全洋葱介绍 安全洋葱是一款开源的入侵检测系统 集成了日志分析 流量分析安全告警如 Grafana TheHive Playbook Fleet O
  • 怎么访问服务器网站根目录,如何访问网站根目录

    如何访问网站根目录 内容精选 换一换 根据 互联网信息服务管理办法 非经营性互联网信息服务备案管理办法 等法律法规的规定 国家对经营性互联网信息服务实行许可制度 对非经营性互联网信息服务实行备案制度 未取得许可或者未履行备案手续 不得指向中
  • labview串口,网口,DSC可用OPC通讯链接三菱欧姆龙西门子等PLC

    labview串口 网口 DSC可用OPC通讯链接三菱欧姆龙西门子等PLC 需要的取 可帮助使用 通过NI OPC控制三菱 欧姆龙西门子等各种型号PLC ID 4450645066968702
  • 余光中:书斋·书灾

    本文转载至 http www yuwenonline com Item 1577 aspx 物以类聚 我的朋友大半也是书呆了 很少有朋友约我去户外恋爱春天 大半的时间 我总是与书为伍 大半的时间 总是把自己关在六叠之上 四壁之中 制造氮气
  • 在阿里6年,但今年这情况,劝大家还是多一手准备吧

    大家期待的经济繁荣 没有来 往年的金三银四 跳槽涨薪 也没有来 来了的 是大公司裁员的消息频频爆出 来了的 是ChatGPT 第一批受到影响的人已经失业了 而且你有没有发现 它平时没什么声音 但每次一发布更新 就是一个重磅炸弹 真的 不知道
  • Unity3D独立游戏开发日记(一):动态生成树木

    目前写的独立游戏是一个沙盒类型的游戏 游戏DEMO视频如下 提到沙盒类型的游戏 就有人给出了这样的定义 游戏世界离现实世界越近 自由度 随机度越高才叫沙盒游戏 所谓自由度 就是你在游戏里想干啥就干啥 想开车就开车 想走路就走路 想盖房子就盖
  • QT release版虚拟键盘无反应

    1 在main Cpp 加入 int main int argc char argv qputenv QT IM MODULE QByteArray qtvirtualkeyboard 虚拟键盘调用 QApplication a argc
  • 【定点数运算】定点的乘法和加法

    目录 定点的介绍 定点的优势 定点数的乘法和加法 乘法 加法 定点的介绍 在之前的博客中介绍了定点数和浮点数 想要了解的可以前往以下链接 定点和浮点 定点数与浮点数的解释 定点的优势 使用定点表示有什么优势 为什么不简单地将所有值规范化为整