問題概要
与えられた16進数の数字(32ビット整数に収まる)の、
xビット目を0に、
yビット目から3桁を110に変更せよ。
解法
16進数の入力を取る(or出力のときはprintf)には、
scanf("%x",&a)が便利である。
ビットのオンにはa|=1<<a,
ビットのオフにはa&=~(1<<a)を使うと便利。
int main()
{
int r,x,y;
scanf("%x,%d,%d",&r,&x,&y);
r&=~(1<<x|1<<y-2);
r|=1<<y|1<<y-1;
printf("%x\n",r);
return 0;
}