问题描述
- access violation at address 0056ee46
-
这个是用于将ABCD转换成实数 请问为什么我老是弹出
access violation at address 0056ee46 in module'project1.exe' read of adress 00000010
这个东西,
开始的时候没有弹,后来在全部弄来一起运行时就弹这个 0056ee46 在程序中是
A1:=(B shr 7)+((A and 127)shl 1);
这一句
大家可不可以告诉我是什么问题???
function IEEE754(var A:integer;var B:integer;var C:integer;var D:integer):real;
var
i:word;
A1,B1,C1,D1:real;
begin
B1:=0;
A1:=(B shr 7)+((A and 127)shl 1);
if(A1 <>0) then
begin
A1:=A1-127;
B1:=1;
end
else A1:=1-127;
A1:=power(2,A1);
A1:=A1*Power((-1),(A shr 7) and 1);
for i:=0 to 6 do
B1:=B1+((B shr i)and 1)*power(2,(-1)*(7-i));
for i:=0 to 7 do
begin
C1:=C1+((C shr i)and 1)*power(2,(-1)*(15-i));
D1:=D1+((D shr i)and 1)*power(2,(-1)*(23-i));
end;
A1:=A1*(B1+C1+D1);
A1:=ROUND(A1*100)/100;
//A1:=trunc(A1);
//A1:=A1/100;
result:=strtofloat(formatfloat('#.00',A1));
end;
时间: 2024-12-27 07:51:33