永发信息网

谁能讲讲这段代码是什么意思——Delphi

答案:2  悬赏:0  手机版
  • 提问者网友:抽煙菂渘情少年
  • 2021-02-15 17:57
function ByteToSingle(B1,B2,B3,B4: Byte): Single;
//************************************************
//功能:字节转换成Single型数据
var
//outputsingle:single; // 输出数值
outputPsingle:PSingle; // 输出数值用到的指针
outputPchar:Pchar; // 输出数值用到的转换字符串
outputArr:array [1..4]of byte;// 输出数值用到的字符数组
begin
outputArr[1]:=0;
outputArr[2]:=0;
outputArr[3]:=0;
outputArr[4]:=0;

outputPchar:=@(outputArr[1]);
outputPchar[1]:= char(strtoint('$'+IntToHex(B1,2)));
outputPchar[2]:= char(strtoint('$'+IntToHex(B2,2)));
outputPchar[3]:= char(strtoint('$'+IntToHex(B3,2)));
outputPchar[4]:= char(strtoint('$'+IntToHex(B4,2)));

outputPsingle := PSingle(outputPchar);
Result := outputPsingle^;
end;
最佳答案
  • 五星知识达人网友:三千妖杀
  • 2022-05-09 01:26
函上面已经有说明了,这个函数的作用是将四个byte(字节)转成一个Single类型。但谁写的这个函数写得很蛋疼,下面这段代码象脱裤子放屁一样:
outputPchar:=@(outputArr[1]);
outputPchar[1]:= char(strtoint('$'+IntToHex(B1,2)));
outputPchar[2]:= char(strtoint('$'+IntToHex(B2,2)));
outputPchar[3]:= char(strtoint('$'+IntToHex(B3,2)));
outputPchar[4]:= char(strtoint('$'+IntToHex(B4,2)));

改成这样好了:

function ByteToSingle2(B1,B2,B3,B4: Byte): Single;
//************************************************
//功能:字节转换成Single型数据
var
outputArr:array [1..4]of byte;// 输出数值用到的字符数组
begin
outputArr[1]:=B1;
outputArr[2]:=B2;
outputArr[3]:=B3;
outputArr[4]:=B4;

Result := PSingle(@outputArr)^;
end;
全部回答
  • 1楼网友:雪起风沙痕
  • 2022-05-09 02:34

这段代码使用了大量的定义符号,不知道哪个是变量,哪个是常数,因此无法读懂,除非能看到全貌,否则很难猜测含义。唯一能猜测的是adj_vtg.edit3应该是某个文本输入框。

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯