delphi有inttohex,可浮点数怎么解决?另外,逆转换如何实现?
解决方案 »
- dbgrid 导出到excel 关于字体大小等方面的问题
- 从另外一台计算机取得图片文件显示在image中,用什么方法最快,欢迎进入!!
- 请问XML文件怎么解析??200分决不食言
- 模拟键盘焦点的取得(300分)
- 请教一个智力题,据说是初一的考试题目
- 各位兄弟们救救急,在做的登录界面中,我要得到登录用户名,
- D6开发的程序在XP下为啥显示的不是XP风格?
- 关于Data control的几个问题.
- Async Pro TAPI控件播放语音,在xp中正常在win7中无声
- 哈哈,很菜,但敬请关注!!!!
- intraweb和ASP之类的语言相比较综合性能如何?
- 请问怎样实现从Listbox1中选取某些字段来创建临时表,这些字段可能来源于不同的数据库中的不同的表,最终目的是希望把这些字段组成的新表
function IntToBin(aInt: Int64): String;
var
vFlag: Boolean;
vBit: Shortint;
begin
vFlag := aInt < 0; repeat
vBit := aInt mod 2;
aInt := aInt div 2;
Result := IntToStr(Abs(vBit)) + Result;
until aInt = 0; if vFlag then
Result := '-' + Result;
end;// 10进制纯小数 转 2进制小数
function DecimalToBin(aDec: Double): String;
var
vDoubleIt: Double;
begin
aDec := Frac(Abs(aDec));
if aDec <> 0 then
begin
vDoubleIt := aDec * 2;
Result := IntToStr(Trunc(vDoubleIt)) + DecimalToBin(vDoubleIt);
end;
end;// 10进制有理数 转 2进制有理数
function FloatToBin(aFloat: Double): String;
var
vInteger: Int64;
vDecimal: Double;
begin
vInteger := Trunc(aFloat);
vDecimal := Frac(aFloat);
Result := IntToBin(vInteger) + '.' + DecimalToBin(vDecimal);
end;procedure TForm1.Button1Click(Sender: TObject);
begin
try
Edit2.Text := FloatToBin(StrToFloat(Edit1.Text));
except
MessageBox(Handle, '请输入合法有理数', '错误', MB_OK);
end;
end;
---------
Function FloatToBin(Value: Real): TChar8;
Asm
LEA ECX, Value;
MOV EDX, [ECX];
MOV [EAX], EDX;
MOV EDX, [ECX+4];
MOV [EAX+4], EDX;
End;Function BinToFloat(Value: TChar8): Real;
Asm
MOV EDX, EAX
LEA EAX, Result
MOV ECX, [EDX]
MOV [EAX], ECX
MOV ECX, [EDX+4]
MOV [EAX+4], ECX
End;