我正在将一些 Pascal 转换为 PHP。在返回类型的函数内部AnsiString
有以下代码行:
SetLength(Result, 3);
Move(I, Result[1], Length(Result));
I
是一个Longint
值为 5051253 的值。最终Result
是'u'#19'M'
.
如何在 PHP 中复制它?它在做什么?我知道Move
从中读取字节I
并将它们放入Result
.
第一行将变量“Result”的长度设置为 3 个字节。
我不知道 I 的值来自哪里,但它可能指向内存中的另一个变量。
第二行是从指向的内存区域复制 3 个字节到变量“Result”中。
您需要做的是查看变量“I”指向的位置并据此构建 PHP 代码。
比方说,我指的是另一个 ansistring 变量“Source”。然后你可以这样做:
`$Result = substr($Source, 0, 3);'
function low3bytes( $I) {
return chr( $I % 256)
. chr( ((int) ($I / 256)) % 256)
. chr( ((int) ($I / 65536)) % 256);
}
警告:未经测试。