相当于delphi中的c#bitconverter

相当于delphi中的c#bitconverter

问题描述:

在Delphi中有没有相当于bitconverter.getbytes?相当于delphi中的c#bitconverter

https://msdn.microsoft.com/en-us/library/fk3sts66(v=vs.110).aspx

只需Move()输入变量入适当大小的一个字节数组,例如:

var 
    value: Smallint; 
    arr: array[0..SizeOf(Smallint)-1] of Byte; 
begin 
    value := ...; 
    Move(value, arr[0], SizeOf(value)); 
end; 

或者:

type 
    TBytes = array of Byte; 

function GetBytes(value: Smallint): TBytes; 
begin 
    SetLength(Result, SizeOf(value)); 
    Move(value, Result[0], SizeOf(value)); 
end; 

var 
    value: Smallint; 
    arr: TBytes; 
begin 
    value := ...; 
    arr := GetBytes(value); 
end; 

可以使用一个简单的转换。使用相同类型的雷米,看起来像这样:

var 
    value: Smallint; 
    arr: array[0..SizeOf(Smallint)-1] of Byte; 
begin 
    value := ...; 
    // by value cast: 
    Smallint(arr) := value; 
    // or by address cast: 
    PSmallint(@arr)^ := value; 
end; 

或本:

var 
    value: Smallint; 
    arr: TBytes; 
begin 
    value := ...; 
    SetLength(arr, SizeOf(value)); 
    PSmallint(arr)^ := value; 
end;