C言語の signed とunsigned の違いではまりやすいパターン (C言語プログラミングでの落とし穴) 基本的なことなのですが、 はまると?になってしまうので注意です。 char data; data = 0xFF; if (data == 0xFF) { // int型にキャストされるので、dataは-1、0xFFは255になる。 } else { // この場合はこちらの条件になる。 // int型では0xFFは、10進数で255 dataに代入された0xFFは、-1 になる。 } unsigned char data2; data2 = 0xFF; if (data2 == 0xFF) { // この場合はこちらの条件になる。 // int型にキャストされるので、data2は255、0xFFも255になる。 } else { // 0xFFは、10進数で255 data2に代