-1

この PHP コードを Java コードに変換するにはどうすればよいですか?

protected function readInt24()
{
    $ret = 0;
    if (strlen($this->_input) >= 3)
    {
        $ret  = ord(substr($this->_input, 0, 1)) << 16;
        $ret |= ord(substr($this->_input, 1, 1)) << 8;
        $ret |= ord(substr($this->_input, 2, 1)) << 0;
        $this->_input = substr($this->_input, 3);
    }
    return $ret;
}

$input は、utf 文字を含む非常にクレイジーな文字列です (afaik): �8� 程度

4

1 に答える 1

0

3ord(substr($this->_input, ..., ...))は、文字列の最初の 3 文字の ASCII 値を取得します。それぞれに対して、次に左シフトがあり、それが return で論理和されます。

これは、Java では次のように変換されます。

public static int readInt24(String input) {
int ret = 0;
if (input.length() >= 3) {
    ret = input.charAt(0) << 16;
    ret |= input.charAt(1) << 8;
    ret |= input.charAt(2) << 0;
}
return ret;
}

次に、PHP コードがインスタンス変数_inputを 3 文字の長さに切り詰めることに注意してください。

于 2012-09-17T17:36:25.157 に答える