我下了一些单词表,但开不了,只是原始文件.

来源:百度知道 编辑:UC知道 时间:2024/06/08 08:11:36
但是我看到它写着BCD格式,要怎样弄才可以看得到完整的单词啊?我下一年要复读咯,这些单词是我努力的第一步,请各位大哥大姐帮帮小弟~~~~~~~~
可以把解决方法放在这里吗?

我把BCD格式数据,用MSComm控件的二进制读取出来。然后如何处理成十进制数,我怎么知道是否有小数点,如果有小数位,小数点在什么位置如何得知?请给出源码.分不够可以再加!
例如:我的BCD编码是FFH OBH 34H 12H 00FF,这个是低位在前、高位在后的压缩BCD编码.第一、二位为标识码,最后一位是结束码。请问如何转换?请给出源码或思路。分不够可以再加!

去除起始码和结束码,BCD值为34H 、12H、00H 。根据低位在前,高位在后的原则,换算成十进制应为1234,BCD本身无法判断是否有小数位,小数位应该根据你的通信协议来换算。你可以用移位的方法来得到你的十进制值。

function ReadBufIntBCD(p:pChar;len:integer):integer;
var
iValue,i:integer;
begin
iValue:=0;
for i:=len-1 downto 0 do
begin
iValue:=(iValue*100)+StrToInt(IntToHex(Byte(p[i]),2));
end;;
Result:=iValue;
end;

调用:

iValue:=ReadBufIntBCD(@buf[2],2);

///////////////buf为$ff $0b $34 $12 $00 $ff的缓冲区

这是别的论坛上的
好像Delphi程序能开...

应该要改后缀吧?