您好、欢迎来到现金彩票网!
当前位置:至尊彩票 > 浮点运算 >

arm芯片的浮点运算

发布时间:2019-04-30 19:43 来源:未知 编辑:admin

  ARM 处理器并不支持浮点运算 (Floating Point Math)。所有的浮点运算都是在浮点运算模拟器上进行,因此特别缓慢。需要浮点运算的函式,常要耗费数千个循环才能执行完毕。这就是为何游戏开发时,通常都使用定点 (Fixed Point) 格式的运算。定点运算实际上是使用整数,但指定固定数目的位元做為数值的分数部份。就好像是指定某一数字,其千位数以下為分数。若要表示 0.500,只要乘以 1000,便得到 500 这个数值。

  比较困难的部份,是开发人员必须随时想像这个隐形的小数点。加法与减法比较没有问题:

  两个定点数值相乘后,必须以除法调整有效位数。若将结果除以 1000,则得到正确值 (250.000/ 1000 = 0.250 為正确的结果)。因此,进行乘法运算时,先做一般的乘法运算,再以除法调整结果的有效位数。

  上述方法会引出一项有趣的问题。相乘后但尚未调整位数前,此居中数值的范围為何?

  在上例中,执行乘法后,数值可能会超过允许的位元数。亦即可能会造成溢位,而得不到您想要的结果。解决方法是為居中数值指定合适的资料格式,确保能储存可能的最大值。当您将两个 32 位元数值相乘时,居中数值必须是 64 位元。调整位数后 (以及截断数值),结果会恢復為 32 位元。

  常用的定点格式為 16:16,亦即前 16 位元代表整数部份,后 16 位元代表分数部份。 以此游戏专案而言,使用了各种不同的格式,以便应用在游戏引擎中各种范围的数值。简而言之,共使用了 2:30、8:24、16:16、24:8、28:4、2:14、8:8、11:5、2:8 以及4:4。其中大多数是 32 位元数值,但有些是 16 位元、10 位元或 8 位元。

http://steveouch.com/fudianyunsuan/101.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有