C言語のscanf文について
C++言語の勉強中で、ビット演算子のところで質問です。
動作は、キーボードから16進データを入力して、そのデータの3,4ビット目を0にした時のデータを算出するというものです。
ここでProgram中の scanf 文にてエラーが出てしまいます。
①%X(16進数)の型がintに対して、ope変数がcharとなっている。
⇒ここの整合を取るためにはどういう方法がありますでしょうか?
以下がProgramです。
/*************************************************************/
/* プログラム:ビット演算子 */
/* 動作内容 :ビット演算子によりビット操作する */
/* 入力データの3,4ビット目を0にした値を算出する */
/**************************************************************/
#include<stdio.h>
int main(void)
{
unsigned char ope;
unsigned char ans;
printf(" Hex-Data : ");
scanf("%X", &ope);
printf(" ope : 0x%02X\n", ope);
ans = ope & 0xe7; /* 3,4ビット目:0 */
printf(" ope & 0xe7 = 0x%02x\n", ans);
getchar();
getchar();
return(0);
}