Linux下C语言&_测试位
原创
©著作权归作者所有:来自51CTO博客作者datrilla的原创作品,请联系作者获取转载授权,否则将追究法律责任
(某数&0x04)等价于((某数&0x4)==0x4)
类似汇编的test
#include<stdio.h>
#include<string.h>
void fun(int s)
{
printf("- is hex:%x dec:%d\n",s,s);
if(s&0x4)printf("-&04\n");
if(s&0x2)printf("-&2\n");
if((s&0x4)==0x4)printf("(-&04)==0x4\n");
if((s&0x4)==1)printf("(-&04)==1\n");
if((s&0x01)==1)printf("(-&0x01)==1\n");
}
int main()
{
int s=0x4;
fun(s);
printf("==============\n");
fun(0x46);
printf("==============\n");
fun(0xf2);
printf("==============\n");
fun(0xf7);
return 0;
}
- is hex:4 dec:4
-&04
(-&04)==0x4
==============
- is hex:46 dec:70
-&04
-&2
(-&04)==0x4
==============
- is hex:f2 dec:242
-&2
==============
- is hex:f7 dec:247
-&04
-&2
(-&04)==0x4
(-&0x01)==1