次のコードをObjectiveCに変換するにはどうすればよいですか?(値はintです)
while (value != 0) {
value >>>= 1;
>>>演算子の一般的な代替品はありますか?
次のコードをObjectiveCに変換するにはどうすればよいですか?(値はintです)
while (value != 0) {
value >>>= 1;
>>>演算子の一般的な代替品はありますか?
この操作は直接サポートされていないため、マスクを使用する必要があります。変数のサイズに応じてvalue、異なるサイズのマスクを選択する必要があります。の場合valueは、 ;shortを使用します。0x7FFFもしあればvalue、long long使用して0x7FFFFFFFFFFFFFください。
while (value != 0) {
value >>= 1;
value &= 0x7FFFFFFF;
}
または、unsigned として宣言することもできますvalue。その場合、通常のシフト代入は を符号拡張しませんvalue。>>>実際、演算子が Java に追加された理由の大部分は、言語に unsigned 型がないことです。