多位BYTE型与十进制之间的转换有关问题

多位BYTE型与十进制之间的转换问题
我需要在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;