今天去面试,被问到写一个宏,实现对一个数据的第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]);

定义一个宏,实现对数据a的第n位置位、清零、取反相关推荐

  1. ACMNO.35 C语言-宏润年 给年份year,定义一个宏,以判别该年份是否闰年。提示:宏名可以定义为LEAP_YEAR,形参为y,既定义宏的形式为 #define LEAP_YEAR(y)

    题目描述: 给年份year,定义一个宏,以判别该年份是否闰年. 提示:宏名可以定义为LEAP_YEAR,形参为y, 既定义宏的形式为 #define LEAP_YEAR(y) (读者设计的字符串) 输 ...

  2. 编写一个头文件,头文件中定义一个宏cube(x)用于求一个数的平方

    <程序设计基础实训指导教程-c语言> ISBN 978-7-03-032846-5 p145 7.1.2 上级实训内容 [实现内容17]编写一个头文件,头文件中定义一个宏cube(x)用于 ...

  3. 给年份year,定义一个宏,以判别该年份是否闰年。提示:宏名可以定义为LEAP_YEAR,形参为y,既定义宏的形式为 #define LEAP_YEAR(y) (读者设计的字符串)

    题目描述 给年份year,定义一个宏,以判别该年份是否闰年.提示:宏名可以定义为LEAP_YEAR,形参为y,既定义宏的形式为 #define LEAP_YEAR(y) (读者设计的字符串) 输入 一 ...

  4. 在C++里边定义一个宏,最多可以包含几层?

    在C++里边定义一个宏,最多可以包含几层? 最近碰到的一个问题,由于程序中定义了好多宏,并且都是嵌套的,类似于a=>b=>c=>d的结构,前后定义了一百个宏,编译的时候发现,如果不对 ...

  5. 伪指令-宏定义:使用#define定义一个宏,宏体中包含命名空间信息导致vs大量报红,但编译和运行却正常

    宏定义:使用#define伪指令定义一个宏 宏体中包含命名空间信息导致vs大量报红,但编译和运行却正常 宏分为不带参数的宏和带参数的宏. 在带参数的宏中,关键字#define后面出现的第一个连续字符序 ...

  6. 写一个宏,可以将一个整数字的奇数位和偶数位交换

    写一个宏,可以将一个整数字的奇数位和偶数位交换 1.过程 2.预处理 3.宏和函数 4.交换奇偶位 1.过程 (1)组成一个程序的每个源文件通过编译过程分别转换成目标代码 (2)每个目标文件由链接器捆 ...

  7. 每日一题(27)—— define定义一个宏表明1年中有多少秒

    用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题) 分析: 1.#define 语法的基本知识(例如:不能以分号结束,括号的使用,等等)  2.懂得预处理器将为你计算常数 ...

  8. define定义一个宏表明1年中有多少秒

    原文链接 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题) 分析: 1.#define 语法的基本知识(例如:不能以分号结束,括号的使用,等等)  2.懂得预处理器将为 ...

  9. 定义一个宏,比较两个数a、b的大小,不能使用大于、小于、if语句

    方法1: 原理:若a>b,则(a-b)的结果为正数,正数的最高位为0:反之为负数,负数的最高位为1 #define MAX1(a,b) (((((a)-(b))&0x80000000)) ...

最新文章

  1. ENC28j60以太网芯片驱动程序简介
  2. scrum敏捷开发工具实践分享
  3. 消息模式Toast.makeText的几种常见用法
  4. IIS支持http协议的:put、delete等方法
  5. angular2 学习二 最简单的模板
  6. python urlretrieve 管道_Python基础之 urllib模块urlopen()与urlretrieve()的使用方法详解。...
  7. BigDecimal类setScale方法问题:算数异常,精确度丢失-ArithmeticException: Rounding necessary
  8. mysql读写分离和分布式_MySQL主从复制与读写分离
  9. windows 系统监视器_使用Windows 7中的可靠性监视器对计算机问题进行故障排除
  10. Box2D教程5-碰撞检测
  11. cmd命令不识别exp_sqlplus、exp、imp不是内部或外部命令,也不是可运行的程序
  12. 86版五笔-字根速记
  13. 应聘总经理的答卷,供大家打分
  14. 使用BoundsChecker查找内存泄露
  15. 蕾辈使匚冉吃勘刚莱涨坟怪
  16. 忆2011年的秋天:一个人的项目
  17. Android 存储文件或者创建文件夹报open failed: ENOENT (No such file or directory)
  18. 不同类型的电机的工作原理和控制方法汇总
  19. 新手值得一看!MacOS中Dock栏的设置和使用技巧
  20. Netkiller Spring 手札之前言

热门文章

  1. 安徽省16市什么企业适合做知识产权贯标申报好处和什么材料汇编整理
  2. 金融python集训营_Python 经典课程集训营开营啦!2018春季火爆开课!
  3. 国内风投是肿么了,都要靠各种大赛找项目了???
  4. AMP/SMP/BMP
  5. C++ Lambda表达式详解
  6. 在Mac上安装Anaconda
  7. android获取wifi mac地址吗,Android 获取WIFI MAC地址的方法
  8. 凝思后台6.0.80版本高危端口关闭方法
  9. 来个NFC卡片当贺卡?
  10. maven 如何移除无用的依赖