多位BYTE型与十进制之间的转换有关问题
多位BYTE型与十进制之间的转换问题
我需要在S50卡里写上会员信息,其中QQ号码,设计占用6个字节,为了防止QQ号以后大于12位,所以采用将QQ号转为16进制后再保存的方法,提出时也时需要将这6个字节的十六进制数据转为10进制再显示或处理。
问题: 1、如何将QQ号转为定长的6位BYTE型数值?
2、如何将6个BYTE型空间中保存的16进制数值再转回QQ号?
------解决方案--------------------
我需要在S50卡里写上会员信息,其中QQ号码,设计占用6个字节,为了防止QQ号以后大于12位,所以采用将QQ号转为16进制后再保存的方法,提出时也时需要将这6个字节的十六进制数据转为10进制再显示或处理。
问题: 1、如何将QQ号转为定长的6位BYTE型数值?
2、如何将6个BYTE型空间中保存的16进制数值再转回QQ号?
------解决方案--------------------
procedure TForm1.Button1Click(Sender: TObject);
var
a: array[0..5] of Byte;
c, d: int64;
s: string;
i: Byte;
begin
c := StrToInt64(Edit1.Text);//Edit1.Text is QQ NO
CopyMemory(@a[0], @c, 6);
s := '';
for i := 5 downto 0 do
s := s + IntToHex(a[i], 2);
Edit2.Text := IntToStr(StrToInt('$'+s));
end;