fixed-point相关内容
嗨,我正在为嵌入式系统实现一些定点数学知识,并且我尝试对两个16.16定点数进行乘法运算,而不创建64位临时数.到目前为止,这里是我想出的产生最少指令的代码. int multiply(int x, int y){ int result; long long temp = x; temp *= y; temp >>= 16; result = temp
..
我目前正在尝试找出如何在定点表示形式中将两个数字相乘. 说我的数字表示法如下: [SIGN][2^0].[2^-1][2^-2]..[2^-14] 在我的情况下,为数字10.01000000000000 = -0.25. 例如,我该怎么做0.25x0.25或-0.25x0.25等? 希望您能提供帮助! 解决方案 乘以一个更大的变量,然后右移定点精度的位数.
..
我最近正在思考浮点数学在计算机上的工作方式,这让我很难理解公式背后的所有技术细节.我需要了解加法,减法,乘法,除法和余数的基础.有了这些,我就能制作出触发函数和公式. 我可以猜出一些东西,但是还不清楚.我知道可以通过用信号标志,基数和尾数分隔4个字节的整数来确定一个固定点.有了这个我们有一个1位的标志,一个5位的基数和一个10位的尾数. 32位字对于浮点值非常合适:) 要在两个浮点数之
..
我正在寻找固定点16.16数的最佳逆平方根算法.到目前为止,下面的代码是我所拥有的(但是基本上,它取平方根并除以原始数,我想得到不除数的平方根倒数).如果更改了任何内容,则将为armv5te编译代码. uint32_t INVSQRT(uint32_t n) { uint64_t op, res, one; op = ((uint64_t)n
..
这是(AFAIK)在此常规中的一个特定问题主题. 这里是情况: 我有一个基于32位RISC微控制器(NEC V810的变体)的嵌入式系统(视频游戏机).我想写一个定点数学库.我阅读了这篇文章,但是随附的源代码是用386程序集编写的,因此既不能直接使用,也不能轻易修改. V810具有内置的整数乘法/除法功能,但是我想使用上面文章中提到的18.14格式.这需要将64位int除以32位
..
我想反转一个4x4矩阵.我的号码以定点格式存储(准确的说是1.15.16). 我通常使用浮点算术构建伴随矩阵并除以行列式(例如蛮力求解).到目前为止,这对我仍然有效,但是在处理定点数时,由于使用了所有的乘法运算,我得到的精度损失是不可接受的. 注意:在定点算法中,我总是丢弃立即结果中的一些最低有效位. 那么-反转矩阵的最数值稳定的方法是什么?我不太在乎性能,但是简单地浮点运算会降
..
我正在处理一种加密货币RPC,并接收json数据,如下所示: { ... "amount": 1.34000000, "confirmations": 230016, "spendable": true, "solvable": true ... } 使用 Jsoncpp 库或我已经有一个定点库,可以使用有效的字符串并将其在内部视为整数.有没有办法让Jsoncpp
..
我经常处于我的代码如下所示的位置: (迭代改进x) 我正在寻找第一个不再比以前更好的价值。 过滤器和 take-while 都不适用于一个明显的解决方案。但是,我犹豫要写出来: (循环[当前x next(改善x)] (如果(=当前下一个) 当前 (重复下一个(改善下一个)))) 或: (让[改进(迭代改进x)] ( - >>(地图矢量改
..
我需要将两个带符号的64位整数 a 和 b 相乘,然后移位(128- bit)结果为带符号的64位整数。最快的方法是什么? 我的64位整数实际上代表定点数,其中 fmt 小数位。选择 fmt ,以便 a * b>> fmt 不应该溢出,例如 abs(a)
..
假设我想要一个非常通用的 ListF 数据类型: { - #LANGUAGE GADTs,DataKinds# - } data ListF :: * - > * - > *其中 无::列出b 缺点:: a - > b - >列表ab 现在我可以使用 Data.Fix 构建一个f-代数 将合格的Data.Fix导入为Fx 实例Functor(
..
修复f = f(修复f ) 以下代码不会终止: 修复(\ x-> x * x)0 当然, fix 并不总能产生正确的答案,但我想知道,这可以改进吗? 当然,对于上面的例子,可以实现一些看起来像 修复fx | f x == f(f x)= f x |否则=修正f(fx) 并给出正确的输出。 上面定义的原因是什么
..
查看GHC源代码,我可以看到 fix 的定义是: fix ::(a - > a) - > a 修复f = let x = fx in x 在一个示例修复使用像这样: fix(\fx - > let x'= x + 1 in x :f x') 这基本上会产生一个数字序列,从1增加到无穷大。发生这种情况修复必须将其收到的功能作为第一个参数来修改
..
正在转换固定铂。 (固定n比特为分数)到IEEE双重安全吗? ie:确实IEEE双格式可以表示一个固定点可以表示的所有数字吗? 测试:一个数字转为浮动pt格式,然后返回到原来的固定pt格式。 p>假设你的定点数是以32位整数存储的,那么IEEE双精度可以表示任何以固定点表示的值。这是因为double有一个53位的尾数,你的定点值只有32位的精度,而定点值的浮点指数在-32到32之间(取
..
我正在开发一些代码,可以从浮点或固定点的硬件中获取数据。目前,我们将其作为浮点数。 低层API都处于固定点。所以我们必须把数据作为定点传回去。我们使用的算法是Cholesky。我想知道为什么我们必须使用Cholesky的浮点数,而不是仅仅把数据作为固定点。这样做有什么好处吗? 我会认为使用浮点数会导致更多的舍入误差。 解决方案 定点超过浮点的主要优点是 在硬件中实现起来要
..
对于激烈的数字计算,我正在考虑使用固定点而不是浮点数。当然,固定点类型的大小有多少个字节,运行在哪个CPU上,如果我可以使用MMX或SSE或任何新的东西, p> 我想知道如果现在浮点运行的速度比以前更快,是否值得考虑固定点?是否有一般的经验法则,我们可以说它会超过几个百分点?从35000英尺的数字表现来看,什么是概述? (顺便说一句,我假设一般的CPU在大多数电脑中找到,而不是DSP或专门的
..
我在过去三天一直在努力去理解浮点和定点表示之间的确切区别。我很困惑阅读材料,我无法决定什么是对的,什么是错的。其中一个问题是“精确”,“尾数”,“非标准化”,“下溢”等技术术语的含义。 任何人都可以用例子给出分歧吗? 到目前为止,并能够清楚地理解)如下所示: - $ / 浮点数 - 1. 优势提供非常大的范围 2. 缺点四舍五入大号 定点 - 1. 优势
..
我正在尝试使用“浮点和定点包”作为VHDL中的滤波器设计的一部分。我正在使用Altera Quartus II作为开发环境。我从网站下载了文件包: http://www.vhdl.org/fphdl/ ,现在可在 http://web.archive.org /web/20160305202256/http://www.vhdl.org/fphdl/ 在他们的用户指南中,提到了下面的内容:
..
我在看到冲突的引用神谕文档。在数据库中FLOAT和NUMBER类型的小数点之间有什么区别吗? 我记得C等人的一个浮点数有精度限制,一个int不具有。例如,对于'浮动',0.1(基数10)近似为0.110011001100110011001101(基数2),其等于0.100000001490116119384765625(基数10)。但是,对于int,5(Base 10)恰好是101(Base
..
我想将3.50存储到一个MySQL表中。我有一个float,我存储它,但它存储为3.5,而不是3.50。我怎么能得到它的尾部零? 解决方案 不要存储货币值为浮动,使用DECIMAL或NUMERIC类型: MySQL数字类型的文档 编辑&澄清: 浮点值容易出现舍入误差,因为它们的精度有限,所以除非你不关心你只能得到9.99而不是10.00,否则应该使用DECIMAL / N
..
我在写一个Fixedpoint类,但是遇到了一个陷阱的位...乘法,除法部分,我不知道如何模拟。我对分部运营商采取了一个非常粗鲁的刺,但我相信它是错误的。以下是它到目前为止的样子: class Fixed { Fixed(short int _value,short int _part): value(long(_value +(_part>> 8))),part(long(_pa
..