当前位置:  编程技术>c/c++/嵌入式

C++十六进制宏的用法详解

    来源: 互联网  发布时间:2014-10-11

    本文导语:  流行的用法:用二进制的每一位代表一种状态。 001,010,100这样就表示三种状态。 通过或|运算就可以组合各种状态。 001|010=011 001|010|100=111 通过与&运算可以去除某种状态。 111&001=110 可以定义这样的宏组合成函数的参数 #defineP10x...

流行的用法:用二进制的每一位代表一种状态。
001,010,100这样就表示三种状态。
通过或|运算就可以组合各种状态。
001|010=011
001|010|100=111

通过与&运算可以去除某种状态。
111&001=110

可以定义这样的宏组合成函数的参数
#defineP10x001L//001
#defineP20x002L//010
#defineP30x004L//100
voidFunc(long){}
Func(P1|P2);

可以这样判断某位是否是1
由于001与xxx只有两种状态000或001
比如001&100=000,001&101=001
voidFunc(longl){
if(l&P1){}//001与xx0=000,001与xx1=001
if(l&P2){}//
}

下面我用调料为例写段代码直观说明:
代码如下:

#include
#include
usingnamespacestd;
#defineTL_YAN0x001L//00001盐
#defineTL_TANG0x002L//00010糖
#defineTL_JIANGYOU0x004L//00100酱油
#defineTL_CU0x008L//01000醋
#defineTL_LAJIAO0x010L//10000辣椒
typedeflongLONG;
//调料
voidTiaoLiao(LONGl)
{
if(l&TL_YAN)//00001&xxxx1=00001
{
cout

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 整理C# 二进制,十进制,十六进制 互转
  • 二进制十六进制转换工具 Bits Tool
  • 拜托提供一下十六进制和十进制之间数据转换的代码
  • 怎样把十六进制转成十进制?
  • 十六进制编辑器 HexEdit
  • 请问我怎么样能够将一个十进制的数组,转成十六进制的。
  • 在java中,如何将一个字符串如“技术性问题”转化成十六进制,反过来,如果有一个十六进制的字符串如“3F3F3A”,又如何将它还原成字符串
  • 100分求linux下串口调试工具,要可以发送、接收十六进制
  • 十进制到十六进制的转换 60分 可加~~~~
  • 如何把十六进制转化字符串
  • Eclipse十六进制编辑插件 EHEP
  • 8位十六进制转换成时间
  • 请教如何使用awk从文件中读取十六进制列的问题
  • JSP查询数据库后返回结果为十六进制字符串,谁遇到过,怎么解决(送24分)?
  • 编程语言中十六进制的正则匹配
  • 一个byte变量里存放十六进制的0x87,如何转化成字符串为“87”,而不是负121?
  • 如何在linux下调试串口,发送十六进制数据?
  • 这些十六进制数 0x11等干什么用的?
  • 格式化输出十六进制数
  • c语言中十六进制转二进制显示的实现方法




  • 特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3