例如
11011010110001111100010001110100
如果是无符号转换,就是3670525044
如果是带符号转换,就是-624442252请问如何将3670525044 转换为 -624442252
或是将-624442252 转换为 3670525044多谢!

解决方案 »

  1.   

    请问如何将3670525044 转换为 -624442252var
     I: Integer;
    begin
     I := 3670525044;
    end;或是将-624442252 转换为 3670525044procedure TForm1.Button1Click(Sender: TObject);
    var
      I: Int64;
    begin
      I := LongWord(-624442252);
      ShowMessage(IntToStr(I));
    end;
      

  2.   

    //from  
      http://kingron.myetang.com/zsfunc01.htm  
       
      (*//  
      标题:无限进制转换  
      说明:使用于数学领域进制之间相互转换  
      设计:Zswang  
      日期:2002-01-24  
      支持:[email protected]  
      //*)  
       
      ///////Begin   Source  
      const  
          cScaleChar   =   '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';  
       
      function   IntPower(Base,   Exponent:   Integer):   Integer;   {   返回Base的Exponent次方   }  
      var  
          I:   Integer;  
      begin  
          Result   :=   1;  
          for   I   :=   1   to   Exponent   do  
              Result   :=   Result   *   Base;  
      end;   {   IntPower   }  
       
      function   IntToDigit(mNumber:   Integer;   mScale:   Byte;  
          mLength:   Integer   =   0):   string;  
      {   返回整数的进制表示;mScale指定多少进制;mLength指定长度,长度不足时向前补0   }  
      var  
          I,   J:   Integer;  
      begin  
          Result   :=   '';  
          I   :=   mNumber;  
          while   (I   >=   mScale)   and   (mScale   >   1)   do   begin  
              J   :=   I   mod   mScale;  
              I   :=   I   div   mScale;  
              Result   :=   cScaleChar[J   +   1]   +   Result;  
          end;  
          Result   :=   cScaleChar[I   +   1]   +   Result;  
          for   I   :=   1   to   mLength   -   Length(Result)   do   Result   :=   '0'   +   Result;  
      end;   {   IntToDigit   }  
       
      function   DigitToInt(mDigit:   string;   mScale:   Byte):   Integer;  
      {   返回进制表示转换成整数;mScale指定多少进制   }  
      var  
          I:   Byte;  
          L:   Integer;  
      begin  
          Result   :=   0;  
          mDigit   :=   UpperCase(mDigit);  
          L   :=   Length(mDigit);  
          for   I   :=   1   to   L   do  
              Result   :=   Result   +   (Pos(mDigit[L   -   I   +   1],   cScaleChar)   -   1)   *  
                  IntPower(mScale,   I   -   1);  
      end;   {   DigitToInt   }  
      ///////End   Source  
       
      ///////Begin   Demo  
      procedure   TForm1.Button1Click(Sender:   TObject);  
      begin  
          Edit1.Text   :=   IntToDigit(StrToIntDef(Edit2.Text,   0),   16);  
      end;  
       
      procedure   TForm1.Button2Click(Sender:   TObject);  
      begin  
          Edit2.Text   :=   IntToStr(DigitToInt(Edit1.Text,   16));  
      end;  
      ///////End   Demo
      

  3.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      I : Longint;
      W : Longword;
    begin
      W := 3670525044;
      I := W;
      ShowMessage(IntToStr(I) + ' , ' + IntToStr(W));  I := -624442252;
      W := I;
      ShowMessage(IntToStr(I) + ' , ' + IntToStr(W));
    end;