使用移位的方法做除法计算

CRC校验 串行 并行 长除 移位 查表 矩阵 CRC校验 CRC校验的几种类型: 长除法,也叫直接计算法 移位寄存器,也叫线性移位 查表法 并行算法 一些有用的网页: CRC并行推导 https://blog.youkuaiyun.com/Old_Street/article/details/106682144 https://blog.youkuaiyun.com/qq_16923717/article/details/83826856 https://wenku.baidu.com/view/fb791c0203d8ce2f006... 阅读详情

原理: 二进制右移几位,就等于除以了2的几次方.

在进行AD采集计算的时候, 会需要使用采集到的AD值, 除以满量程的AD值, 再乘以基准电压的方法来计算采集到的电压值. 

以12位ADC为例, 基准电压3.3V, 3300mv, 正常情况下, c语言是这样写的:

uint16_t adVal =0;

uint32_t volt_mv = 0; 

volt_mv = (adVal *3300)/4096;

特殊情况下, 也可以利用二进制移位除法的原理, 来写程序:

volt_mv  = (adVal *3300)>>12; /*二进制右移12位,即等于舍去小数点的除以2的12次方*/

同理,  (adVal *3300)>>8 等价于  (adVal *3300)/256

FPGA实现高效移位除法 综上所述,移位除法作为一种常见的数学运算,在FPGA上的高效实现对于提高计算效率和性能至关重要。通过对其原理的深入理解,以及选用合适的优化方法,我们可以实现更加优秀的FPGA设计。上述代码中,将被除数和除数分别定义为16位和4位的输入信号,商和余数分别定义为12位和4位的输出信号。这是因为在移位除法过程中,有些除数比较特殊,可以事先计算出来并存储在LUT中,提高运算效率。首先,我们需要了解移位除法的原理。值得注意的是,上述代码只是一种简单的实现方式,对于大规模计算或高速计算的情况,需要进行更加优化的设计。 阅读详情

相关推荐

FPGA除法运算的实现方法

在上述代码中,首先将M、D、Q、R都声明为16位宽的向量,其中M和D是输入端口,Q和R是输出端口。它的基本思想是利用余数最小原则,将被除数先左移n位(n为除数的位数),然后减去除数的n位左移值,得到余数。最后,商就是每次减去的次数。在FPGA中实现除法运算,可以采用恒除法、牛顿迭代法或者查表法等不同的实现方法。以上就是基于FPGA实现除法运算的一个简单实现方法,当然还有其它更高效的除法实现方法,读者可以自行了解。下面给出VHDL代码,实现了一个简单的除法器,其中M为被除数,D为除数,Q为商,R为余数。

2301_79326510的博客 1325

左移,右移的数字意义,总是忘,记忆一下

转自百度:http://baike.baidu.com/link?url=u8V9QGHtlfDkBZK5fyB0wYGjjAfeVWfXX6HSKpQBeQWQqFIWkEysYk99W0sYRR2yzfDlq8umUraQSwVdbrzYF_左移运算符就是在二进制的基础上对数字进行平移。按照平移的方向和填充数字的规则分为三种:<<(左移)、>>(带符号右移)和>>>(无符号右移)。[1] 在

勥小透明 8634

移位实现乘除法运算

移位实现乘除法运算移位实现乘除法运算移位实现乘除法运算

c语言 右移12位是什么意思,C语言程序设计_12位运算.ppt

C语言程序设计_12位运算资料第十二章 主要内容 12.1位运算符和位运算 12.2位运算举例 12.3位段 概念 位运算是指按二进制位进行的运算。因为在系统软件中,常要处理二进制位的问题。 例如:将一个存储单元中的各二进制位左移或右移一位,两个数按位相加等。 C语言提供位运算的功能,与其他高级语言(如PASCAL)相比,具有很大的优越性。 12.1 位运算符和位运算 12.1.1“...

weixin_34274954的博客 529

先进封装Interposer仿真步骤及说明

摘要: Interposer仿真是2.5D/3DIC封装设计的关键环节,涵盖信号完整性(SI)、电源完整性(PI)、热及结构应力分析。流程分为五个阶段:1)前处理,定义层叠结构与材料属性;2)参数提取,通过3D电磁建模获取TSV、传输线等寄生参数;3)仿真设置,选择求解器并设定频率范围;4)结果分析,评估信号损耗、阻抗及电源网络性能;5)后处理,进行多物理场协同仿真并生成模型。核心挑战在于多尺度与多物理场耦合,需优先确保高速信号与电源网络的仿真精度。常用工具包括Ansys HFSS、Cadence Sigr

DSY_0324的博客 1348

【RL+空战】学习记录01:jsbsim 仿真环境初次学习,F16 战机起飞

【代码】【RL+空战】学习记录01:jsbsim 仿真环境初次学习,F16 战机起飞。

weixin_41369892的博客 902

c语言 右移12位是什么意思,C语言左移和右移

事情的发生:某日工作中有个需求是将不同的数值存到char的前4位和后4位中。恰好同事中有同样取得32位int的前8位当成一个数值的代码://取得32位中的高八位组成的值#define U32_HIGH_8(val) ((val >> 24) & 0X000000FF)好奇心就来了,在右移24位以后是否还有必要再与上(&)0x000000FF将高位的数据彻底清零呢...

weixin_39828715的博客 1705

从问卷到结论:手把手教你用SPSS 28完成一份完整的社科数据分析报告

本文详细介绍了如何使用SPSS 28完成社会科学研究中的数据分析报告,从问卷数据导入、清洗到描述性和推断性统计分析,再到结果呈现与报告撰写。通过实际案例演示,帮助研究者掌握SPSS 28的核心功能,提升数据分析效率与报告质量。

weixin_28717431的博客 249

c语言 右移12位是什么意思,求大神解释右移运算4位和除16的区别。

该楼层疑似违规已被系统折叠隐藏此楼查看此楼xx[i][j]=xx[i][j]>>4+xx[i][j-1];和xx[i][j]=xx[i][j]/16+xx[i][j-1];这两句结果不是一样的么,怎么放在同一个程序中得到不同的结果?附源程序#include #include #include #include char xx[50][80];int maxline=0;int...

weixin_29014939的博客 609

(一)利用Python实现数据集读取,Python基本文件操作介绍

机器学习是计算机对大量数据的分析过程,在机器学习的实际项目中,通常都需要准备数据集,数据集通常包含的数据数量是庞大的。例如,在处理计算机视觉领域的项目时,每一张图片都是一个单独的文件,为了提高模型训练的效果,图片数量通常会比较多,因此需要合理且高效的操作将所有的图片数据读取。本篇旨在介绍如何用Python对海量文件进行遍历,也是机器学习实践的第一步。.........

ZZR2631574030的博客 6357

matlab球面投影(二)

matlab球面投影,想做一个全景相机,不知道,要做成啥样,于是在MATLAB先仿真一下,看下是个啥样子 百度别人做的,复制下面的代码到MATLAB的命令串口下,,网上找了张全景图,可以是bmp,jpg,改程序就可以了 回车运行就可以看到结果。 复制下面代码时,下面的中文注释记得删除,MATLAB是会报错的, close all; clear all; clc [x,y,z]=sphere(50); A=imread('a.JPG'); //名字是自己命名的,记得改 B=warp(x,y,-z,

rjszcb的博客 3161

C++ 移位运算之左移右移

C++中的符号<<代表左移,相当终于乘2 符号>>代表右移,相当于除以2 例如:12>>1就是12除以2 12>>3就是12除以2^3(右移三位,除以三次2) 1<<15就是2^15,左移15位,乘以15次2, 即2^15 ...

peachzy的博客 1961

YOLOv11在STM32H7上的MCU部署实战:基于CMSIS-NN的高效推理实现

嵌入式AI与MCU部署技术解析 本文系统介绍了基于STM32H7微控制器的YOLOv11模型部署方案。主要内容包括: 边缘计算背景下MCU的AI部署优势与挑战,重点分析了STM32H7平台特性 YOLOv11模型的结构优化,包括E-ELAN骨干网络和Meta-ACON激活函数等改进 CMSIS-NN加速库的架构原理,在STM32H743上可实现5.4倍卷积加速 完整的开发环境搭建流程,涵盖硬件选型、工具链配置和模型转换 模型优化关键技术,包括int8量化、剪枝和内存占用优化等 实验表明,该方案在保持模型精度

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 854

简单的C语言移位计算整形乘法和除法值

首先要提一点,在SOC系统中,运算速度一般是移位&gt;乘法&gt;除法。 1.乘法。 最简单的A*B,用C语言for循环 for(int i=0;i           这个是最容易想到的,现在用移位来实现,效率要高一点。   例子1.计算A*17 法1:A=A&lt;&lt;4+A;//移位一次相当于*2 法2:模拟二进制乘法手动运算,适合大整数的乘法。 以前写汇编的时候就写...

交叉编译的博客 1349

雨雾天YOLOv8检测拉胯?暗通道去雾+上下文注意力双优化,mAP从58%飙到79%,暴雨也能看清车牌

室外交通监控:高速、省道的雨雾天检测,重点解决小车、货车漏检;车载ADAS系统:雨天行车时的前方车辆、行人识别,需实时性(<40ms);隧道出入口:明暗交界+雾天的复杂场景,暗通道能平衡亮度。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1380

2025机械考研复试面试问题汇总篇(含13门科目),考研机械复试专业面试常见重点问题总结!考研机械复试专业面试准备看这一篇就够了!

(完整版内容:)1.汇集了本科各科的重点知识及多个机械名校800多个常见问题,共8.7万字185页,涵盖机械所以专业课的重点知识和常见问答。 2.涉及机械大类重点科目,包括:材料力学、控制工程、数控技术、机械制造技术基础、理论力学、液压传动、机械设计、机械原理、工程材料、互换性与技术测量、测试技术、汽车理论、程序设计与C语言等13门必修课。

weixin_56510835的博客 1862

Verilog实现除法器

本文介绍了基于移位相减法的硬件除法器设计原理。算法通过查找除数最高有效位,采用逐位比较的方式实现高效除法运算。核心步骤包括:1)通过循环查找除数x的最高位;2)通过移位相减法计算商,每次比较当前余数与除数x的大小来决定商位并更新余数。Verilog实现中,使用组合逻辑查找最高位,并通过状态机控制计算流程。该设计将传统连续减法的时间复杂度从指数级降低到对数级,显著提升了硬件除法运算效率。关键信号包括启动(start)、计算完成(calcDone)等状态标志,以及余数(rem)等中间变量。

微小冷的学习笔记 2357

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

计算机乘除法发展,计算机基本运算(乘除法)

一、乘法1. 计算表达式:x*y (其中y = 2^n0+2^n1+2^n2+2^n3+2^n4.....)则x*y = (x)*( 2^n0+2^n1+2^n2+2^n3+2^n4.....)= (x*2^n0)+(x*2^n1)+(x*2^n2)+….即(x左移0位)+(x左移1位)+(x左移2位)+(x左移3位)+......2. 以15(x)*13(y)来举例,15*13 = 1111 ...

weixin_28982089的博客 348

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

代码优化-之-优化除法

摘要:现在的CPU,做乘法是很快的(1个CPU周期左右,或者是需要两/三个周期,但每个周期能启动一个新的乘指令),但作为基本指令的除法却超出很多人的预料,它是一条很慢的操作,整数和浮点的除法都慢;本文将给出一些除法的优化方法或替代算法;> 作者:HouSisong@263.net (说明:文章中的很多数据可能在新的CPU或不同的CPU或不同的系统环境下有不同的结果,可能不能面面俱到) x86系列的CPU对于位运算、加、减等基本指令都能在1个CPU周期内完成(现在的CPU还能乱序执行,从而使指令的平均CP

1446

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

除法优化

说明:文章中的很多数据可能在不同的CPU或不同的系统环境下有不同的结果,数据仅供参考 x86系列的CPU对于位运算、加、减等基本指令都能在1个CPU周期内完成(现在的CPU还能乱序执行,从而使指令的平均CPU周期更小);现在的CPU,做乘法也是很快的(需要几个CPU周期,每个周期可能启动一个新的乘指令(x87)),但作为基本指令的除法却超出很多人的预料,它是一条很慢的操作,整数和浮点的除法都慢;

warlice的专栏 4801

代码优化之-优化除法

http://blog.youkuaiyun.com/housisong/article/details/1116423  说明:文章中的很多数据可能在不同的CPU或不同的系统环境下有不同的结果,数据仅供参考    x86系列的CPU对于位运算、加、减等基本指令都能在1个CPU周期内完成(现在的CPU还能乱序执行,从而使指令的平均CPU周期更小);现在的CPU,做乘法也是很快的(需要几个CPU

cjsycyl的专栏 1804

移位,逻辑运算实现加法,乘法和除法

1 用逻辑运算实现加法: 两个正整数相加,如果使用移位操作符和逻辑运算: 与&运算,适用于对应位相同的加法,如x=3=(0011),y=3=(0011),则x&y=0011=(x+y)/2; 异或运算,适用于对应位不同的加法,如x=3=(0011),y=3=(0100),则x^y=0111=7 故(x+y)/2=x&y+(x^y)>>1 对于二进制加法:1+1=0,1+0=1,0+1=1

yanerhao的专栏 1万+

如何不使用除法操作符实现两个正整数的除法

分析: 方法一:减法   使被除数不断减去除数,直到相减的结果小于除数为止。此时商就为相减的次数,余数为最后相减的差。 实现代码: package lock; public class T16 { public static void divide(int m,int n) { /*方法功能,计算两个自然的除法*/ System.out.println(m+"除以"+n); int res=0; int remain=m; //被除数减除数,直到相减结果小于除数为止 while

路在前方 843

matlab多项式除法降阶,二进制多项式除法研究

二进制多项式除法研究1、伽罗华域二进制除法matlab演示过程:>> a = gf([1 0 11],1)a= GF(2) array.Arrayelements =1011>> b = gf([1 10],1)b = GF(2)array.Arrayelements =110>> c = deconv(a,b)c = GF(2)array.Arrayeleme...

weixin_35767180的博客 1210

LeetCode-Divide Two Integers-快速除法

https://oj.leetcode.com/problems/divide-two-integers/ 不使用乘除实现除法。 那么能够使用的就是+-和移位运算。首先检查边界和符号。如果用一直减的方法实现,会有可能除数很小导致超时。 所以必须借助移位运算减少减法操作数目。 我的想法是,首先通过被除数右移计算出一个除数需要左移的最大位数。然后从最大的右移位数一直减小到右移0,每次都将a减少...

weixin_30851409的博客 89
上一篇: STM32异常跳转Hardfault时,导致事故的问题追踪排查
下一篇: KEIL5.43a之后,debug无法查看 外设寄存器的解决方法
TubingHead&XmassTree
博客等级 码龄5年 22粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值