什么是浮点计算?
浮点运算就是实数运算,因为计算机只能存储整数,所以实数都是约数,这样浮点运算是很慢的而且会有误差。普通整数的表达方式很简单,就是二进制的同一个数字而已。1是1,2是10,3是11,4是100之类的。但是计算机要如何表示小数点呢?
一个浮点数字被分为两半,其中一半记录一个数字,另一半记录10 的次方数。例如1.56424可以写成156524乘上10的-5次方,但是,其中一个是负数,电脑怎么表示呢?其实也很简单。比如说总共只有4位数,可以表达0-9999,还是分成两半,定义其中4999表示0,4998表示-1,5000表示+1等等。那么刚刚的小数就可以写成156424,4994两个整数。
分析 | 金色盘面:XRP再次跌至支撑位0.42附近:金色盘面分析师表示:XRP再次跌至0.42附近,现报0.43,跌幅3.20%,注意支撑的有效情况,不破则继续看震荡,破位则有加速下跌风险。[2018/8/2]
这就是电脑里的浮点数。显然程序要做的并不是将两个整数直接相加,因为其中一部分是次方数,次方数不容的两个数字不能相加,即便相同,最后的结果也可能影响次方数等等一些列问题。写一个软件进行换算让CPU的基本整数运算电路来算浮点效率很差,因此现代的处理方式是直接在处理器里设置浮点电路,也就是fpu。
金色财经现场报道 中工软件区块链事业部CTO刘阳 :跨链技术缺乏一致性等问题 :金色财经6月3日现场报道,在今天的以太坊技术及应用大会上,中工软件区块链事业部CTO刘阳做了题为“跨链技术在数字经济中的应用”主题演讲。当前跨链中存在的问题有:缺乏一致性、响应延时、无法应对实际应用、缺乏先瞻性等问题;在数据资产领域的应有场景主要有:资产交易与转移、资产管理与确权、复杂的金融服务等,但目前以上领域的落地还比较空泛;基于现有的跨链技术面临问题主要有:无法保障的性能;逻辑实现困难;交易/交互成本高;缺乏应用支持。[2018/6/3]
由于CPU电路设计是基于位宽的(就是数据有多少位),所以浮点数字是有固定长度的。比如156424,4994是12位,在同样的格式下是无法表达出1.56424739的,多余的位数只能丢掉,也就是只能取到近似值。
金色财经现场报道 火币研究院院长袁煜明:区块链之所以能改造生产关系是因为四大趋势:金色财经现场报道,在2018全球区块链精英峰会上,火币研究院院长袁煜明进行以《如何利用区块链改造生产关系》的主题演讲,他指出:区块链之所以能改造生产关系是因为以下四大趋势:加密算法的代码替代传统契约;资产广义化,通过区块链和Token,可以将隐形资产展现出来;实现了所有者、生产者、使用者的统一;细化权责划分的颗粒度,权责界定越明晰,经济就越容易达到帕累托最优,在柠檬市场效应下,及信息不对称的情况下,就会出现劣币驱逐良币的情况。[2018/4/28]
数据位数越多,就需要更宽,更复杂的的电路。目前因特尔CUP计算浮点的时候内部精度是80位,输出为还是64。显卡很多都是单精度32位的。
在区块链领域,保持智能合约的正确精确度非常重要,尤其是在处理反映经济决策的比例或者比率时。
试想,如果在代币的运算中出现运算结果小于1的情况,那么0.XXX就会被约等于0. 同样4.9个代币也会被约等于4个,带来一定程度上的精度流失。由于代币的经济属性,精度的流失就相当于资产的流失,所以这在交易频繁的代币上会带来积少成多的问题。
智能合约运算中的精度问题其实追根究底也是计算机精度问题的延申。但是由于区块链产业目前的经济属性,精度无疑成为安全的一个重要考量,在精度的问题上多下功夫,有益无害。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。