怎样将一个数值转换为两个字节:
例如:
var
sbuf:array[1..256] of byte;
将一个数值600转换为两个字节
现在发送一串字符串:
sbuf[1]:=byte[01];
sbuf[2]:=byte[00];将600转换为(02,88)怎么转换?

解决方案 »

  1.   

    Type
        PMyData = ^TMyData;
        TMyData = Packed Record
            Data : Array [ 0 .. 1 ] Of Byte;
        End;Var 
       X : ShortInt;
       Y : MyData;
    Begin
         X := 600;
         Y := PMyData( @X )^;
    End;搞定!!!
      

  2.   

    var
      sbuf: array[1..256] of byte;
    begin
      sbuf[1] := Hi(600);
      sbuf[2] := Lo(600);
      ShowMessage(Format('%d,%d', [sbuf[1], sbuf[2]]));
    end;
      

  3.   

    或者你也可以使用移位操作X := 600;Y[ 0 ] := X and $FF;
    Y[ 1 ] := ( X Shr 8 ) And $FF;
      

  4.   

    byte[0]:= 600 and 00ff;
    byte[1]:= 600 shr 4;