当前位置: 编程技术>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
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.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
站内导航:
特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!