0

次のコードをObjectiveCに変換するにはどうすればよいですか?(値はintです)

while (value != 0) {
    value >>>= 1;

>>>演算子の一般的な代替品はありますか?

4

1 に答える 1

1

この操作は直接サポートされていないため、マスクを使用する必要があります。変数のサイズに応じてvalue、異なるサイズのマスクを選択する必要があります。の場合valueは、 ;shortを使用します。0x7FFFもしあればvaluelong long使用して0x7FFFFFFFFFFFFFください。

while (value != 0) {
    value >>= 1;
    value &= 0x7FFFFFFF;
}

または、unsigned として宣言することもできますvalue。その場合、通常のシフト代入は を符号拡張しませんvalue>>>実際、演算子が Java に追加された理由の大部分は、言語に unsigned 型がないことです。

于 2012-02-23T03:11:47.120 に答える