顔認識

笑い男の技術力を手に入れたいと思い顔認識を調べていましたがOpen-CVのHaarウェーブレットのあたりで length >>= 1 という謎の演算式にぶちあたり、あれ?何これと思ってちょっとコード書いたり。

なんてことはなかったです。
a += 1 で a = a + 1と同じで a >== 1は a = a >> 1だった。

なんか10進数から2進数への変換プログラム例があっちではwhile(1)とかやってたり、こっちでは何故か10進数変数で2進数を表現していたり、わざわざ配列使ってたりしてうんざりしたので、電子世界の迷い人がより良い答えにたどり着けるよう祈りつつ下記に乗せておきます。

10進数を2進数で表示するC言語コード

void printbit(int i){
if(i>>1)printbit(i>>1);
printf("%d", i%2 ? 1:0);
}

小賢しい手を使わないと下記です。

void printbit(int i){

if( i /2 > 0) printbit( i / 2);

if(i % 2 == 1) printf("%d", 1);
else printf("%d", 0);

}