1.将第0位值变为0,其他位不变
2.将第1位值变为1,其他位不变
3.将第3位值变为1,其他位不变
4.将第4位值变为0,其他位不变
5.将第4-7位值变为0,其他位不变
6.将第9-12位值变为1,其他位不变
7.将第15-17位和19-25值变为1,其他位不变
8.将第10-13和17-20位值变为0,其他位不变
9.将第9-12位值变为1,23-29位变为0,其他位不变
#include<stdio.h>
2 int main()
3 {
4 int x = 0xa89be7f1; //给变量X赋值0xa89be7f1
5 printf("x0 = %x\n",x & ~1); //取值1的反和x的第0位相与,并打印x的值
6 printf("x1 = %x\n",x | (1<<1)); //取值1,向左移动1位,和x相或,并打印x的值
7 printf("x3 = %x\n",x | (1<<3)); //取值1,向左移动3位,和x相或,并打印x的值
8 printf("x4 = %x\n",x & ~(1<<4)); //取值1,向左移动4位取反后,和x相与,并打印x的值
9 printf("x4-7 = %x\n",x & ~(0xf<<4)); //取值0xf,整体左移4位后取反和x相与,并打印x的值
10 printf("x9-12 = %x\n",x | (0xf<<9)); //取值0xf,整体左移9位后和x相或,并打印x的值
11 printf("x15-17&19-25 = %x\n",x | (0x7f7<<15)); //取值0x7f7,整体左移15位后和x相或,并打印x的值
12 printf("x10-13&17-20 = %x\n",x & ~(0x78f<<10)); //取值0x78f,整体左移10位后取反与x相与,并打印x的值
13 printf("x9-12&23-29 = %x\n",x & ~(0x7f<<23) | (0xf<<9) ); //先取值0x7f整体左移23位后取反和x相与,得到x的值。取值0xf> ,整体左移9位,和x相或
14
15 return 0; //返回