-2

我正在将一些 Pascal 转换为 PHP。在返回类型的函数内部AnsiString有以下代码行:

SetLength(Result, 3);
Move(I, Result[1], Length(Result));

I是一个Longint值为 5051253 的值。最终Result'u'#19'M'.

如何在 PHP 中复制它?它在做什么?我知道Move从中读取字节I并将它们放入Result.

4

2 回答 2

3

第一行将变量“Result”的长度设置为 3 个字节。

我不知道 I 的值来自哪里,但它可能指向内存中的另一个变量。

第二行是从指向的内存区域复制 3 个字节到变量“Result”中。

您需要做的是查看变量“I”指向的位置并据此构建 PHP 代码。

比方说,我指的是另一个 ansistring 变量“Source”。然后你可以这样做:

`$Result = substr($Source, 0, 3);'

于 2013-01-21T06:52:49.810 回答
2
function low3bytes( $I) {
  return chr(         $I           % 256)
       . chr( ((int) ($I /   256)) % 256)
       . chr( ((int) ($I / 65536)) % 256);
}

警告:未经测试。

于 2013-01-21T08:02:34.867 回答