次のコードを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 型がないことです。