永发信息网

求浮点运算代价

答案:3  悬赏:20  手机版
解决时间 2021-11-24 14:07
高分问题,请尊重您的答案!

我们都知道浮点在计算机中的储存方式——这点不需要答了。

1、(int) i * 2;这样的行为可以优化为 i<<2;如果不优化,那么实际计算机做的操作是?或者说i * 234,计算机是进行低级储存单元上的运算的?

2、同样的,对于浮点,是如何进行乘法和加法运算的?(重点)

3、同样的运算,比如(float) i * 2;跟(int) i * 2;之间的代价差别到底有多大?我要的是确数,比如1是2的20倍代价之类的(但是我想没那么高吧?)(重重点)

请高手回答了,分数不上限,答案越完美越好!百度实在搜不到相关问题
最佳答案
1. 你这里的i是浮点数? 浮点数的话似乎是不能这么优化的。 但是c提供一些专门的浮点函数可以做类似的事情(直接处理浮点数的幂次),你去查查看吧

2. 浮点乘除就是有效部分相乘然后调整幂次, 加减就是调整成相同的幂次然后加减。 总的来说浮点数做加减乘除的效率是接近的。(不像整数运算,加减比较快)
3. 在很多芯片上浮点数运算要占用接近20的时钟周期, 在有些芯片上比你估计的20倍差距还要大。 浮点数运算非常低效又非常重要,所以从386时代浮点协处理器就很普及了,后来直接把这个协处理器做在cpu里面, 现在的这些cpu都是带浮点处理器的, 一次浮点运算只需要2,3个时钟周期,这已经跟整数乘法差不多了(有些阉割版本处理器这方面会差一些)。 总的来说如果你考虑的是pc上的编程,那么浮点运算性能只是略差。 但如果你要做其他芯片的编程的话 你必须先了解一下这个板子上到底有没有浮点处理器,没有的话性能差距会非常非常大 ,尽量就别用了
全部回答
1、(int) i * 2;这样的行为可以优化为 i<<2;如果不优化,那么实际计算机做的操作是?或者说i * 234,计算机是进行低级储存单元上的运算的? Answer: i * 2 => i << 1. 具体计算机硬件怎么做,你去查一下乘法器的硬件实现吧。乘法器是CPU里面的一个功能单元。 2、同样的,对于浮点,是如何进行乘法和加法运算的?(重点) Answer: 浮点数的运算是由CPU里面的FPU来执行的。其实和整数的方法类似,不过需要乘之前把小数点对齐。 3、同样的运算,比如(float) i * 2;跟(int) i * 2;之间的代价差别到底有多大
你要知道准确结果很难,没有实际意义,因为硬件上对于常见运算指令有优化,就同复杂指令集和精简指令集,流水线非流水线,等等硬件上的优化对于因为某个指令上的效率不足影响系统效率的都优化了,浮点数的运算就在这个范围内,只能说个大概的效率比较了 1。在2的N次幂运算是现在的编译环境一般都会自动变为移位运算,所以在这种情况下代码执行结果是一样的。如果比较移位运算和普通乘法运算的效率,指令周期上移位运算要较乘法运算节省1半.但机器周期就是你所感觉到的速度是很难比较的,因为机器级对于不同的硬件结构可能有优化。 2.对于汇编来说浮点运算都是交给浮点运算器,浮点数不支持移位运算,浮点数的运算就是幂和指数的运算,相当于普通的2倍运算量,但浮点运算器内有流水线预处理等优化.一般就一个机器周期就能搞定,可以和整数乘法效率非常接近,或超过。 3.你这里有类型转换操作,是编译器支持,硬件不支持整形和浮点混合运算,编译器编译后会去调用转换操作,需要时间是单一类型(不要浮点和整型混合)运算的2倍。单一类型来说浮点和整数运算的运算时间是差不多的,可能浮点还要快点(看CPU,一般的CPU还是整数运算快)。 不要在浮点和整数上犹豫,只要不要频繁的类型转化,两者预算效率非常相近或相同。 否是在运算时间上不管有没硬件优化(不排除有混合运算的硬件优化,有的话那就太变态了),至少两倍运算时间!! 千万别频繁的类型转换!!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
人生在世,两茫茫,不思量,自难忘.是什么意
安装软件时显示没有权限写入改位置
买了一辆二手2.4雅阁油耗17个油(八代雅阁)
酒后八小时能不能喝布咯芬
大田县老龄工作委员会办公室地址在什么地方,
从大盛村到麻涌汽车站怎么坐公交车,最快需要
奉贤区公积金管理中心地址好找么,我有些事要
ipad air在一直说话怎么办
请问,六百管太阳能的蓄水池要高于保温箱多少
厦门商标转让一般多少钱
为什么二倍体能在秋水仙素下变成4倍体,不就
宏观经济学中,重置投资是什么意思
川大预科班一年后如何选专业?
老镯子上面写着泰和银元值钱吗
吴忠2016.1月份科目三考试安排
推荐资讯
如何安慰生意不顺的人
怎么分辨客厅的左右方,是面对门口还是背对门
小腿肌肉酸痛可以用力捏吗
求《倾尽缠绵》番外
求一些奇怪的现象及科学解答
p9哪个系统拍照最好
PRO什么意思?
修手动叉车和卖手动叉车挣钱吗
现任的中国银行河北省分行行长或副行长是不是
本人新买的车,因为是按揭买的,审批已经过了
北京与兰州时差为49分4秒,兰州经度为103度53
弹到高山流水,恨古来无二几知音-前面一句是什
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?