Pebble Coding

ソフトウェアエンジニアによるIT技術、数学の備忘録

Swiftでビット演算判定

C言語でのビット演算後の判定処理と同じことをSwiftで書く場合、少し工夫がいるので、メモ。

int value1 = (1<<0);
int value2 = (1<<0|1<<1);

if( value1 & value2 ){
    printf( "good!" );
}

swiftではifの中身はBoolしか受け付けないのでこう書かなくてはいけません。

let value1 = Int(1<<0)
let value2 = Int(1<<0 | 1<<1)

if (value1 & value2) != 0 {
    println( "good" )
}

// あるいは
if Bool(value1 & value2){
    println( "good" )
}

どちらが安全なのか分かりません。