数组 – Delphi XE3 – >整数到字节数组

我有一个数据结构:
data = array of integer;

我已经把它填满了

source = array of byte;

data[x] := Source[offset] or (Source[offset + 1] shl 8) or
    (Source[offset + 2] shl 16) or (Source[offset + 3] shl 24);

在处理完这些块后,我必须将它们带回“字节”……

任何想法?

解决方法

您可以使用Move在单行中执行此操作.
Move(source[0],dest[0],Length(source)*SizeOf(source[0]));

如果需要执行网络/主机字节顺序转换,则可以在Move之后运行整数数组.

在相反的方向,你反过来完成所有这一切.

如果您没有字节顺序问题,那么您可能根本不需要转换为字节数组.您可以按原样使用整数数组.请记住,没有字节顺序问题,字节和整数数组的内存布局是相同的(这就是为什么你能够使用Move进行blit).

相关文章

ffmpeg 是一套强大的开源的多媒体库 一般都是用 c/c++ 调用, 抽空研究了一下该库的最新版 ,把...
32位CPU所含有的寄存器有:4个数据寄存器(EAX、EBX、ECX和EDX)2个变址和指针寄存器(ESI和EDI) 2个指针寄...
1 mov dst, src dst是目的操作数,src是源操作数,指令实现的功能是:将源操作数送到目的操作数中,即:...
有三个API函数可以运行可执行文件WinExec、ShellExecute和CreateProcess。 1.CreateProcess因为使用复杂...
API原型: Declare Function MoveFileEx& Lib "kernel32" Alias "MoveFileExA" (By...