现在 两个 16进制的数  就是FF和EE
要把他连起来弄成 一个数  变成FFEE怎么弄啊
还有把FFEE变成FF和EE又是怎么弄啊  
谢谢指点!

解决方案 »

  1.   

    首先,还是那句话:建议多看课本的基础部分,把基本功练扎实。这样基础得不能再基础的问题,书本上有最标准的“答案”。因为你的数据类型说得不太明白,我只有猜测着你的意图说一下,你看一看,你要的是不是这个结果。如果我说的并不是你要的,那你最好把代码(包括变量声明部分)贴出来,把你想得到而又不会的那部分空出来,这样比较好回答(比较容易明白你想要什么)。1、可以用StrToInt函数实现
    var
      B1, B2 : Byte; //或Integer、Word等类型
      W : integer;
    begin
      B1 := $FF; //立即数$FF等同于十进制的255。也就是说,这句等于B1 := 255; 下同
      B2 := $EE;
      W := StrToInt( '$' + Format('%.2x',[B1]) + Format('%.2x',[B2]) );
      //现在,W已经是你想要得到的数了,如果看一下W的十六进制形式,可以这样:
      ShowMessage( Format('%.4x',[W]) );
    end;2、也可以用指针实现上面的功能:
    var
      B1, B2 : Byte;
      P : ^Byte; //声明一个指向Byte类型的指针
      W : integer;
    begin
      B1 := $FF;
      B2 := $EE;
      W := 0;  //你可以自己思考一下,我为什么要加这一句(如果W是Word类型的,就不必了)
      P := @W;
      P^ := B2;
      Inc(P);
      P^ := B1;
      //现在,W已经是你想要得到的数了,如果看一下W的十六进制形式,可以这样:
      ShowMessage( Format('%.4x',[W]) );
    end;3、还可以用位运算实现:
    var
      B1, B2 : Byte;
      W : integer;
    begin
      B1 := $FF;
      B2 := $EE;
      W := $FF00 and (B1 shl 8);
      W := W + $FF and B2;
      //现在,W已经是你想要得到的数了,如果看一下W的十六进制形式,可以这样:
      ShowMessage( Format('%.4x',[W]) );
    end;//上面的方法,并不是仅有的三种方法附:几个转换函数举例:var
      I : integer;
      S : string;
    begin
      I := 255;
      S := Format('%.2x',[I]); // 'FF' 这个,在前面几例中都有应用
      S := IntToHex(I, 2);  // 'FF' 这个,功能与Format函数类似
      I := StrToInt('$FF'); // 255 这个已以前面第一例里介绍了
      { 前面直接用 B1 := $FF;这样赋值。如果你的原数据是字符串'FF',在例1可以直接使用;在其他例子里,可以用StrToInt('$' + 'FF')这样的形式转换。总之,举一反三,灵活运用 }
    end;
      

  2.   

    还有一个问题没回答:
    “还有把FFEE变成FF和EE又是怎么弄啊”可以这样弄:(细心看一下,就是前面的例2)var
      B1, B2 : Byte;
      P : ^Byte;
      W : integer;
    begin
      W := $FFEE;
      P := @W;
      B2 := P^;
      Inc(P);
      B1 := P^;
      ShowMessage( Format('%.2x',[B1]) );
      ShowMessage( Format('%.2x',[B2]) );
    end;也可以用位运算实现.....自己有时间练习一下吧。
      

  3.   

    《PASCAL精要》虽然老一点,但看一看也是挺不错的。网址是:http://www.marcocantu.com/EPascal/chinese