2.3 定点乘法运算
学习目标:
如果我要学习定点乘法运算,我会按照以下步骤进行学习:
-
确定学习目标:明确学习定点乘法运算的目的和重点,以便有针对性地进行学习。
-
掌握基础知识:首先需要了解定点数和定点乘法的基础知识,包括定点数的表示方法、定点数的加减乘除运算规则和定点数的溢出处理等。
-
熟悉乘法原理:学习定点乘法运算的原理和基本方法,了解定点数的乘法操作过程,理解乘法的本质和意义。
-
掌握乘法算法:学习不同的乘法算法,包括基本乘法算法、快速乘法算法和 Booth算法等,掌握它们的优缺点、实现方法和适用场景。
-
实践练习:进行定点乘法的实践练习,从简单的乘法操作开始,逐步增加难度,加深对定点乘法的理解和掌握。
-
深入学习:学习高级的定点乘法运算知识,包括带符号乘法、小数点定位和压缩乘法等,扩展定点乘法运算的应用范围和能力。
-
实际应用:将所学的定点乘法知识应用到具体的项目和实际应用中,例如数字信号处理、图像处理和音频处理等,提高实际解决问题的能力。
总之,学习定点乘法运算需要掌握基础知识、熟悉乘法原理、掌握乘法算法、进行实践练习、深入学习和实际应用,需要不断的思考和练习,才能掌握并运用得熟练。
2.3 定点乘法运算的理解:
定点乘法是指在定点数的表示下进行的乘法运算,其中乘积的小数点位置是固定的,即不随运算过程改变,因此称之为定点乘法。定点乘法常用于数字信号处理、图像处理、嵌入式系统等领域,它可以有效地降低硬件复杂度和延长系统寿命。
在定点乘法中,两个定点数的乘积的小数点位置是固定的,一般情况下,小数点位于数值位的某个位置。例如,若小数点位于低位第k位,则称为k位定点数。两个k位定点数的乘积就是将它们的数值相乘后,将结果向右移动k位,即可得到k位定点数的结果。
在定点乘法的计算过程中,需要考虑两个关键问题:1) 溢出问题,即乘积超出了定点数所能表示的范围;2) 精度问题,即乘积的精度不足或过高,导致结果失真。
为了解决溢出和精度问题,常用的定点乘法算法包括基本乘法算法和 Booth算法等。其中,基本乘法算法是将乘数和被乘数的每一位相乘,再按位相加的方法进行计算;而 Booth算法则是一种快速乘法算法,它利用了二进制数的位权规律,可以减少计算的次数,提高计算效率。
除了基本乘法算法和 Booth算法,还有许多其他的定点乘法算法,如Karatsuba算法和快速傅里叶变换算法等,它们各有特点和适用范围。在实际应用中,需要根据具体场景选择最合适的算法。
总之,定点乘法是数字信号处理和图像处理等领域中广泛应用的一种重要技术,它涉及到数值表示、算法设计和精度控制等方面的知识,需要认真学习和掌握。
1.人工算法与机器算法的同异性理解:
人工算法和机器算法是两种不同的算法,它们有着各自的特点和应用场景。
一方面,人工算法是由人类设计和实现的算法,它通常采用符号运算或数值运算的方式进行计算。人工算法可以充分考虑计算的精度和效率等问题,因此通常具有较高的可读性和可调试性,可以灵活地适应不同的应用需求。另外,人工算法还可以利用人类的经验和知识,对特定的问题进行优化,提高算法的性能和效果。
另一方面,机器算法是由计算机程序实现的算法,它通常采用计算机语言进行描述和实现。机器算法可以充分利用计算机的计算能力和存储能力,能够处理大规模数据和复杂问题,可以快速地完成计算任务。此外,机器算法还可以通过机器学习等方法,自动学习和优化算法,提高算法的精度和效率。
在同一问题领域中,人工算法和机器算法可能存在一定的同异性。例如,在图像处理领域中,人工算法可以根据图像的特征和应用场景,设计出特定的算法来完成图像处理任务,而机器算法可以通过深度学习等方法,自动学习图像的特征和规律,并完成相应的图像处理任务。在一些应用场景下,人工算法和机器算法可能会相互补充,从而提高整个算法系统的性能和效果。
总之,人工算法和机器算法都是算法设计和实现中的重要部分,它们各自有着不同的特点和应用场景,需要根据具体问题和需求选择最合适的算法。
2.不带符号的阵列乘法器
不带符号的阵列乘法器是一种在计算机硬件中广泛应用的乘法器,它可以高效地实现大规模的数字信号处理和图像处理等应用。
不带符号的阵列乘法器的基本结构是由一组乘法器、加法器和寄存器等硬件单元组成的。其中,乘法器用于计算两个输入数的乘积,加法器用于将多个乘积相加,寄存器用于暂存运算结果。不带符号的阵列乘法器可以支持任意长度的输入数,并且可以快速地完成乘法运算,从而满足了高效计算的需求。
具体来说,不带符号的阵列乘法器可以按照以下步骤完成乘法运算:
-
将输入数分别拆分成若干个位数,并将每个位数依次输入到乘法器中。
-
乘法器对每个位数进行乘法运算,并将结果输出到加法器中。
-
加法器对所有乘积进行累加,并将结果输出到寄存器中。
-
寄存器暂存运算结果,并输出最终的乘积。
需要注意的是,不带符号的阵列乘法器只适用于处理不带符号的数字信号,因此在处理带符号的数字信号时,需要进行额外的符号扩展和处理。
总之,不带符号的阵列乘法器是一种高效的数字信号处理硬件,它可以快速地完成大规模的乘法运算,从而满足了各种高效计算的需求。
3.带符号的阵列乘法器
带符号的整列乘法器是一种在计算机硬件中广泛应用的乘法器,与不带符号的阵列乘法器相比,它可以同时处理带符号和无符号的数字信号。
带符号的整列乘法器的基本结构和不带符号的阵列乘法器类似,但需要增加一些额外的硬件单元来实现符号扩展和运算。其具体实现方法如下:
-
首先将输入的带符号数进行符号扩展,即将符号位复制到高位,保证输入数的长度相同。
-
对扩展后的两个带符号数进行无符号乘法运算,得到一个无符号的乘积。
-
将无符号乘积的位数减去扩展的位数得到有效位数,然后再根据输入数的符号位进行符号位的处理。
-
将得到的结果存储到寄存器中,输出最终的乘积。
需要注意的是,在进行符号扩展和符号处理时,需要考虑到带符号数的溢出问题,否则会导致计算结果错误。
总之,带符号的整列乘法器是一种可以同时处理带符号和无符号的数字信号的硬件乘法器,它可以高效地完成大规模的乘法运算,从而满足各种数字信号处理和图像处理等应用的需求。
总结:
定点乘法是数字信号处理中的一项重要运算,其重点、难点和易错点如下:
重点:
- 定点乘法的基本原理和算法;
- 定点乘法的精度分析;
- 定点乘法的实现方法和优化策略;
- 定点乘法在数字信号处理中的应用。
难点:
- 定点数的表示和运算;
- 定点数的溢出和截断处理;
- 定点乘法的精度和误差分析;
- 定点乘法的高效实现和优化。
易错点:
- 定点数位宽和小数点位置的选取;
- 定点数的溢出和截断处理;
- 定点乘法的算法细节,如符号扩展、进位处理等;
- 定点乘法的优化策略的选取。
为了避免这些易错点,需要对定点乘法有深入的理解,并仔细设计和优化算法。同时,也需要进行严格的精度分析和测试,以保证算法的正确性和有效性。
相关文章:

2.3 定点乘法运算
学习目标: 如果我要学习定点乘法运算,我会按照以下步骤进行学习: 确定学习目标:明确学习定点乘法运算的目的和重点,以便有针对性地进行学习。 掌握基础知识:首先需要了解定点数和定点乘法的基础知识&…...

C++每日一练:打家劫室(详解动态规划法)
文章目录 前言一、题目二、分析三、代码总结 前言 这题目出得很有意思哈,打劫也是很有技术含量滴!不会点算法打劫这么粗暴的工作都干不好。 提示:以下是本篇文章正文内容,下面案例可供参考 一、题目 题目名称: 打家…...

Wireshark使用
Capture Filters 语法 <Protocol name><Direction><Hosts><Value><Logical operations><Expressions> e.g 1.tcp src port 443 只抓取来源端口是443的tcp数据 2.not arp 不获取arp数据 3.port 80 获取端口是80的数据,不指…...

这才是 SpringBoot 统一登录鉴权、异常处理、数据格式 的正确姿势
本篇将要学习 Spring Boot 统一功能处理模块,这也是 AOP 的实战环节 用户登录权限的校验实现接口 HandlerInterceptor WebMvcConfigurer 异常处理使用注解 RestControllerAdvice ExceptionHandler 数据格式返回使用注解 ControllerAdvice 并且实现接口 Response…...

Java面试题总结 | Java面试题总结6-MYSQL模块(持续更新)
Mysql 文章目录 Mysql关系型数据库和非关系型数据库的区别什么是ORM?-**mybatis**如何评估一个索引创建的是否合理?Count函数执行效果上:执行效率上:count(主键)和count(列名) 数据库的三大范式Mysql中char和varchar的区别数据库设计或者功能…...

Linux命令集(Linux文件管理命令--mv指令篇)
Linux命令集(Linux文件管理命令--mv指令篇) Linux文件管理命令集(mv指令篇)2. mv(move)1. 文件移动2. 递归移动目录3. 文件目录重命名4. 强制移动5. 备份覆盖的目标文件6. 试探性移动7. 显示移动进度8. 补集操作9. 修改文件的权限…...

不一样的 Git 之间 | GitLab vs GitHub vs Gitee vs GitCode
Git仓库对比:GitLab vs GitHub vs Gitee vs GitCode 在软件开发中,版本控制是必不可少的工具之一。Git作为目前最为流行的版本控制系统,也逐渐成为了开发者们的标配。但是,如何选择一个合适的Git仓库来存储您的代码呢?…...

海尔牵头IEEE P2786国际标准通过Sponsor投票并连任工作组主席
01 海尔牵头IEEE P2786国际标准 通过Sponsor投票 并连任工作组主席 海尔牵头制定的全球首个服装物联网国际标准IEEE P2786《Standard for General Requirements and Interoperability for Internet of Clothing》通过Sponsor投票,标志着该国际标准草案得到了行业…...

倾斜摄影超大场景的三维模型的顶层合并的纹理压缩与抽稀处理技术分析
倾斜摄影超大场景的三维模型的顶层合并的纹理压缩与抽稀处理技术分析 倾斜摄影超大场景的三维模型的顶层合并需要对纹理进行压缩和抽稀处理,以减小数据量和提高数据的传输和展示性能。以下是一种常用的纹理压缩和抽稀处理技术: 1、纹理图集 纹理瓦片化…...

linux命令之iostat详解
iostat 监视系统输入输出设备和CPU的使用情况 推荐Linux命令在线工具:linux在线查询工具 补充说明 iostat命令 被用于监视系统输入输出设备和CPU的使用情况。它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用情况。同vmstat一样,ios…...

【C++】程序员必备知识:认识类与对象
【C】程序员必备知识:认识类与对象 ①.面向过程和面向对象②.类的引入③.类的定义Ⅰ.定义方式Ⅱ.命名规则建议: ④.类的访问限定符及封装Ⅰ.访问限定符Ⅱ.封装 ⑤.类的作用域⑥.类的实例化⑦.类的对象大小计算Ⅰ.如何计算?Ⅱ.类对象存储方式Ⅲ…...

python基础实战5-python基本结构
1 if语句 if语句是用来进行判断的,其使用格式如下 if 要判断的条件: 条件成立时,要做的事情 案例一: age 30 print("------if判断开始------") if age > 18:print("我成年了") print("------if判断…...

移动端异构运算技术 - GPU OpenCL 编程(基础篇)
一、前言 随着移动端芯片性能的不断提升,在移动端上实时进行计算机图形学、深度学习模型推理等计算密集型任务不再是一个奢望。在移动端设备上,GPU 凭借其优秀的浮点运算性能,以及良好的 API 兼容性,成为移动端异构计算中非常重要…...

QString类方法和变量简介(全)
QString类方法和变量简介 操作字符串(|append|insert|sprintf|QString::arg()|prepend|replace|trimmed|simplified)查询字符串(startsWith|endsWith|contains|localeAwareCompare|compare)字符串转换 标准C提供了两种字符串:一种是C语言风格的以"\0"字符…...

中移链控制台对接4A平台功能验证介绍
中移链控制台具备单独的注册登录页面,用户可通过页面注册或者用户管理功能模块进行添加用户,通过个人中心功能模块进行用户信息的修改和密码修改等操作,因业务要求,需要对中移链控制台的用户账号进行集中管理,统一由 4…...

必知的Facebook广告兴趣定位技巧,更准确地找到目标受众
在Facebook广告投放中,兴趣定位是非常重要的一环。兴趣定位不仅可以帮助我们找到我们想要的目标受众,还可以帮助我们避免一些常见的坑。今天,就让我们一起来看看必知的Facebook广告兴趣定位技巧,更准确地找到目标受众。 1.不要只关…...

【MySQL】慢查询+SQL语句优化 (内容源自ChatGPT)
慢查询SQL语句优化 1.什么是慢查询2.优化慢查询3.插入数据优化5.插入数据底层是什么6.页分裂7.页合并8.主键优化方式10.count 优化11.order by优化12.group by 优化13.limit优化14.update 优化15.innodb 三大特征 1.什么是慢查询 慢查询是指执行SQL查询语句所需要的时间较长&a…...

HashMap底层源码解析及红黑树分析
HashMap线程不安全,底层数组链表红黑树 面试重点是put方法,扩容 总结 put方法 HashMap的put方法,首先通过key去生成一个hash值,第一次进来是null,此时初始化大小为16,i (n - 1) & hash计算下标值&a…...

科技云报道:一路狂飙的ChatGPT,是时候被监管了
科技云报道原创。 即使你过去从不关注科技领域,但近期也会被一个由OpenAI(美国的一家人工智能公司)开发的人工智能聊天机器人“ChatGPT”刷屏。 与上届“全球网红”元宇宙不同,这位新晋的“全能网友”似乎来势更加凶猛。 互联网…...

第四十四章 管理镜像 - 传入日记传输率
文章目录 第四十四章 管理镜像 - 传入日记传输率传入日记传输率镜像数据库状态 第四十四章 管理镜像 - 传入日记传输率 传入日记传输率 在备份和异步成员的镜像成员状态列表下方,自上次刷新镜像监视器以来日志数据从主服务器到达的速率显示在该成员的传入日志传输…...

加密解密学习笔记
加密种类 对称加密,分组对称加密算法 加密算法 AES(Advanced Encryption Standard)高级加密标准 DES(Data Encryption Standard)数据加密标准 3DES/Triple DEA (Triple Data Encryption Algorithm) 三重数据加密算…...

Spring 属性填充源码分析(简单实用版)
属性填充 属性填充只有 3 种方式 根据名称填充 根据类型填充 思考什么时候会出现呢??? 多见于第三方框架与 Spring集成,举例:Mybatis 与 Spring集成,把 Mapper 接口注册为 BeanDefinition 时候就指定了自…...

【机器学习分支】重要性采样(Importance sampling)学习笔记
重要性采样(importance sampling)是一种用于估计概率密度函数期望值的常用蒙特卡罗积分方法。其基本思想是利用一个已知的概率密度函数来生成样本,从而近似计算另一个概率密度函数的期望值。 想从复杂概率分布中采样的一个主要原因是能够使用…...

三角回文数+123
三角回文数:用户登录 问题描述 对于正整数 n, 如果存在正整数 k 使得 n123⋯kk(k1)/2, 则 n 称为三角数。例如, 66066 是一个三角数, 因为 66066123⋯363 。 如果一个整数从左到右读出所有数位上的数字, 与从右到左读出所有数位 上的数字是一样的, 则称这个数为…...

JAVA常用的异步处理方法总结
前言 在java项目开发过程中经常会遇到比较耗时的任务,通常是将这些任务做成异步操作,在java中实现异步操作有很多方法,本文主要总结一些常用的处理方法。为了简化,我们就拿一个实际的案例,再用每种方法去实现…...

GitLab统计代码量
gitlab官方文档:https://docs.gitlab.com/ee/api/index.html 1、生成密钥 登录gitlab,编辑个人资料,设置访问令牌 2、获取当前用户所有可见的项目 接口地址 GET请求 http://gitlab访问地址/api/v4/projects?private_tokenxxx 返回参数 …...

Linux TCP MIB统计汇总
概述 在 linux > 4.7 才将所有TCP丢包收敛到 函数 tcp_drop 中 指标详解 cat /proc/net/netstat 格式化命令 cat /proc/net/netstat | awk (f0) {name$1; i2; while ( i<NF) {n[i] $i; i }; f1; next} (f1){ i2; while ( i<NF){ printf "%s%s %d\n", …...

记录 docker linux部署jar
第一步 web sso user admin 中yml文件还原到阿里mysql数据库 第二步 各个jar进行打包处理 第三步 正式服务器的Jar备份 第四步 拉取以上jar包 到正式服务器中 第五步 查看 docker images 其中 web_service 1.0.2是上一个版本 上一个版本build 镜像命令是这样的(需…...

【Linux】教你用进程替换制作一个简单的Shell解释器
本章的代码可以访问这里获取。 由于程序代码是一体的,本章在分开讲解各部分的实现时,代码可能有些跳跃,建议在讲解各部分实现后看一下源代码方便理解程序。 制作一个简单的Shell解释器 一、观察Shell的运行状态二、简单的Shell解释器制作原理…...

onMeasure里如何重置只有1个子view一行满屏, 若有多个自适应一行
onMeasure里如何重置只有1个子view一行满屏, 若有多个自适应一行 可以尝试在 onMeasure 方法中重写 measureChildWithMargins 或 measureChild 方法来实现这个需求。 对于只有一个字的 View,我们可以把它的宽度设为屏幕宽度,高度设为最大高度,这样这个 View 就会占满一整行…...