首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

一边试题,四则运算没有浮点数协处理器

2012-08-13 
一面试题,四则运算没有浮点数协处理器f x * 0.1 + y * 0.3 + z * 0.6x,y,z 是整数,cpu中没有浮点数的协

一面试题,四则运算没有浮点数协处理器
f = x * 0.1 + y * 0.3 + z * 0.6

x,y,z 是整数,cpu中没有浮点数的协处理器,何解?

[解决办法]
把小数转化为带负幂权重的二进制数。
[解决办法]
r = 10f = x + 3y + 6z

printf( "%d.%d\n", r/10, r%10 );
[解决办法]
把楼上的思路进一步:

f = (x + 3y + 6z) / 10

3y = y << 1 + y
6z = z << 2 + z << 1

M / 10 = M * 160 / 16

M * 160 = M * 128 + M * 32 = M << 7 + M << 5

N / 16 = N >> 4

热点排行