32bit的实数类型与16bit整数类型的...(100分)

  • 主题发起人 主题发起人 jh_pan
  • 开始时间 开始时间
J

jh_pan

Unregistered / Unconfirmed
GUEST, unregistred user!
请问各位:
如何将一个32位实数(real)的前16位和后16位分别存入两个16位的smallint中?
 
如果你是要r实际存储值
r:real;
i1,i2:smallint;
r:=1.1;
i1:=smallint(((PLongWord(@r))^)shr 16);
i2:=smallint(((PLongWord(@r))^) and $ffff);
如果你是要把real换成32bit整数值
r:real;
i1,i2:smallint;
lw:longword;
lw:=round(r);
i1:=smallint(lw shr 16);
i2:=smallint(lw and $ffff);
 
接受答案了.
 
后退
顶部