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