定义一个宏,实现对数据a的第n位置位、清零、取反
来源:互联网 发布:软件测试周末班 编辑:程序博客网 时间:2024/06/05 21:07
今天去面试,被问到写一个宏,实现对一个数据的第n位取反的问题,当时蒙了没做出来,现在对数据的第n位置位、清零、取反进行总结一下
置位操作:
#define M1(a,n) (a|(1<<n))
清零操作:
#define M2(a,n) (a&~(1<<n))
取反操作:
#define M3(a,n) (a^(1<<n))
如果a、b两个值不相同,则异或结果为1。如果a、b两个值相同,异或结果为0。
#define a 0xfff0
#define n 3
#define M1(a,n) (a|(1<<n))
#define M2(a,n) (a&~(1<<n))
#define M3(a,n) (a^(1<<n))
void main()
{
printf("M1(a,n)=%x\n",M1(a,n));
printf("M2(a,n)=%x\n",M2(a,n));
printf("M3(a,n)=%x\n",M3(a,n));
}
还问了一个问题是一个数组比不知道它的数据类型,计算数组的长度
我写的是:len = sizeof(array)/sizeof(array[0]);
阅读全文
0 0
- 定义一个宏,实现对数据a的第n位置位、清零、取反
- 把一个数的第三位进行清零、置位、取反
- 把一个数的第三位进行清零、置位、取反
- 【锐捷笔试题】将整形变量a的最高n位清零,其它位不变,宏定义:#define clear_bits(a,n)
- 实现对一个8bit数据指定位(例如第n位)的置0或置1操作
- 编写一个函数,取一个小数的第n(-10<=n<=16)位,当n大于0时,从小数点位置开始向右取小数部分第n位,当n小于0时,从小数点位置开始向左取整数部分的第n位。
- 将整数的第n位清零或置1,其他位不变
- 请编码实现:实现一个对8Bit数据(unsigned char 类型)的指定位(例如第n位)的置0或者置一操作,并保持其他位不变。
- 将 int a 第三位清零、置1、去反
- 【C语言】实现对一个8 bit数据(unsignedchar类型)的指定位(例如第n位)的置0或者置1操作,并保持其他位不变。
- 【c语言】实现对一个8bit数据(unsigned char 类型)的指定位(例如第n位)置0或者置1操作,并保持其他位不变
- 将整数X的第p位开始的n个位(二进制位)取反并且将结果返回
- 实现对一个8bit数据的指定位置0或置1操作,其他位不变
- 取一个数的第i位
- 操作Excel的一个有用实例及从EXCEL第N行开始取数据
- 操作Excel的一个有用实例及从EXCEL第N行开始取数据
- 【Java】给定两个32位的整数N与M,以及表示比特位置的i与j。编写一个方法,将M插入N,使得M从N的第 j 位开始,到第 i 位结束。
- a的b次方对n取模
- Deque-STL
- A road map to become a Data Scientist(上)
- 整合spring cloud云服务架构
- Lower Bound-STL
- calibrate kinnect v1 on ubuntu
- 定义一个宏,实现对数据a的第n位置位、清零、取反
- Maps-STL
- Java中List Set Map 是否有序等总结(转载)
- JAVA小结
- Maximum Element——stack
- [BigData] HBase 集成 Phoenix SQL 查询引擎
- Hbase的架构和实现原理
- day1:MVC设计模式
- 分布式事务原理与实践