1.给定一个整型数a,设置a的bit3(为1),保证其他位不变。
# include<stdio.h>
//1.给定一个整型数a,设置a的bit3(为1),保证其他位不变。
int main()
{
unsigned int a = 0xffff1234;
a *= ~(0x8);
a += 0x8;
printf("a = 0x%x\n",a);
return 0 ;
}
3.给定一个整型数a,清除a的bit15,保证其他位不变。
#include<stdio.h>
//3.给定一个整型数a,清除a的bit15,保证其他位不变。
int main()
{
unsigned int a = 0xffffffff;
// a &= ~(0x1 << 15);
printf("a = 0x%x\n",a &= ~(0x1 << 15));
return 0;
}
4.给定一个整形数a,清除a的bit15~bit23,保持其他位不变。
#include<stdio.h>
//4.给定一个整形数a,清除a的bit15~bit23,保持其他位不变。
int main()
{
unsigned int a =0xffffffff;
a = ~(0x1ff << 15) & a;
printf("a = 0x%x\n",a);
return 0;
}
5.给定一个整形数a,取出a的bit3~bit8。
#include<stdio.h>
//5.给定一个整形数a,取出a的bit3~bit8。
int main()
{
unsigned int a =0xffffff4f;
a= a & (0x3f << 3);
a = a >> 3;
printf("a = 0x%x\n",a);
return 0;
}
6.用C语言给一个整形数的bit7~bit17赋值937(其余位不受影响)。
#include<stdio.h>
// 6.用C语言给一个整形数的bit7~bit17赋值937(其余位不受影响)。
int main()
{
unsigned int a = 0xffffffff;
a &= ~(0x7ff << 7);
a += (937 << 7);
printf("a = 0x%x\n",a);
return 0;
}
7.用C语言将一个整形数的bit7~bit17中的值加17(其余位不受影响)。
#include<stdio.h>
// 7.用C语言将一个整形数的bit7~bit17中的值加17(其余位不受影响)。
int main()
{
unsigned int a = 0x12345678;
a += (17 << 7);
printf("a = 0x%x\n",a);
return 0;
}
8.用C语言给一个整形数的bit7~bit17赋值937,同时给bit21~bit25赋值17.
#include<stdio.h>
// 8.用C语言给一个整形数的bit7~bit17赋值937,同时给bit21~bit25赋值17.
int main()
{
unsigned int a = 0x12345678;
a &= ~(0x7ff << 7);
a += (937 << 7);
a &= ~(0x1f << 21);
a += (17 << 21);
printf("a = 0x%x\n",a);
return 0;
}