1.将data中的第[7:4]位置1,保持其他位不变【7:4】表示4-7位说明:最右边位
为第0位,用十六进制表示
#include <stdio.h>
int main(){
unsigned char data=0x01;
data=data|0xf0;
printf("data=%#x",data);
return 0;
}
2.给定一个整形变量a,1)设置a的bit位3为1,2)将a的bit3置0
#include <stdio.h>
int main(){
int a=0xab4f;
a=a&0xffbf;
printf("a=%#x",a);
return 0;
}
3.执行语句k=11>>1后,变量k的当前值
#include <stdio.h>
int main(){
int k=11;//0x000b
k=k>>1;//目标结果0x0005
printf("The result is:%#x\n",k);
return 0;
}
4.输入三个数,按照从大到小的顺序输出
#include <stdio.h>
int main(){
int In1,In2,In3,m=0;
printf("Please enter three random numbers:\n");
scanf("%d%d%d",&In1,&In2,&In3);
In1>=In2?In1:(m=In1,In1=In2,In2=m);
In1>=In3?In1:(m=In1,In1=In3,In3=m);
In2>=In3?In2:(m=In2,In2=In3,In3=m);
printf("These numbers, in descending, are:%d %d %d\n",In1,In2,In3);
return 0;
}
5.思考如何交换两个数的值
#include <stdio.h>
int main(){
int num1,num2,m;
printf("Enter two random numbers:\n");
scanf("%d%d",&num1,&num2);
m=num1;num1=num2;num2=m;
printf("Sort after swap: %d %d\n",num1,num2);
return 0;
}
6.scanf吸收垃圾字符的代码重新写一遍,练习题4重新做─遍
#include <stdio.h>
int main(){
char a1,a2,a3,a4;
//方式一:在每个可能出现垃圾字符的位置加入空格
//scanf(" %c %c %c %c",&a1,&a2,&a3,&a4);
//方式二:利用抑制字符吸收垃圾字符 %*c
scanf("%c%*c%c%*c%c%*c%c%*c",&a1,&a2,&a3,&a4);
printf("These characters are: %c %c %c %c\n",a1,a2,a3,a4);
return 0;
}
#include <stdio.h>
int main(){
unsigned char data=0x8f,data1;//enter any 8-bit binary digit
//将第六位置一的表达式
data1=data|0x40;
//第六位清零的表达式
data1=data1&0x4f;
//将第六位取反的表达式
data1=data1^0x40;
printf("%#x",data1);
return 0;
}
7.整理思维导图