比如:var s: string ;  D: dword;s := '99999999999999' ;怎样将上面数字转成dword值保存到 D ?
反之:  D:= $FFFFFFFF    怎么把他转成字符串 S (无符号的十进制形式) .

解决方案 »

  1.   


    dword是32位无符号整数,它的范围是0 - $FFFFFFFF,'99999999999999'远超这个范围,需要用64位变量存贮,比如int64、qword(32位delphi中没有qword)
      

  2.   


    不好意思, 上面是随便乱写的一个数字..  您用这个试试吧:
    procedure TForm1.Button1Click(Sender: TObject);
    var s: string ;
    begin
      s := '2147483648'  ;  // $7FFFFFF + 1
      ShowMessage(IntTostr(strtoint(s)));
    end;
      

  3.   


    这个简单,用val代替strtoint就行了,val(s,d,code);
      

  4.   

    谢谢, 问题搞定一半.  那怎么把十六进制字符串: $FFFFFFFF 转成 十进制无符号字符串呢?
      

  5.   


    这个直接用inttostr就行了
      

  6.   


    十六进制字符串: $FFFFFFFF 转成 十进制无符号字符串