[Swift]Swiftでのビット演算覚書

Swift

富豪的プログラミングであれば、フラグごとにInt64とか割り当てるのもアリなんですが、過去との互換性とかでデータを詰め込みたいときにビット単位で使ったりします。

そういうとき向けの覚書です。

課題:Swiftでビット演算

Swiftでビット単位でデータをセット/ゲットしたい

具体的には、Swiftで以下の演算を行う方法です。

演算の種類

  • データセット
  • データゲット
  • データのOn/Off確認

基本部分

C言語と同じです。

ビットOR
|
ビットAND
&
ビットXOR
^
ビットシフト
 <<, >>

ちょっと応用

checkValueという変数のNビット目を対象にすると、以下のようになります。

チェック:特定ビットがセットされているか?
(checkValue & (1 << N)) != 0
セット:特定ビットをセット
(checkValue | (1 << N))
Memo: |= も可能(ただし、varで定義されている必要あり)
リセット:特定ビットをリセット
(checkValue & (MAXVALUE ^(1 << N)))
特定のビットだけ0にしたいので、特定ビットを0、それ以外を1となる値を作って、ANDを取ってます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です