画像の単純白黒化コードのバグ

画像工学の二値化でやっと濃い部分が無くなる現象がわかった。
char iで宣言された場合、i = 0xffとかだと
真っ黒な点になるはずが

threshold = 100;

if(i < threshold) {
    i = 0;
} else {
    i = 0xff;
}

ifの条件判定で char0xff
つまり-127ってなって
255 > 100だと思っていたのが-127 < 100になって
見事なまでに逆転してしまったというのだ。

char型の変数はsignedであることに気をつけよう^^;