易百教程

使用按位|操作符

|是按位OR运算符,也称为包含OR。是按位AND运算符。
以下代码演示了如何使用按位OR运算符设置字节中的位。
OR值定义为第2行的常量SET,它的值是二进制00100000

示例代码

#include <stdio.h> 
#define SET 32

char *to_binary(int n); 

int main() 
{ 
   int bor,result; 

   printf("输入一个在 0 ~ 255 之间的数字: "); 
   scanf("%d",&bor); 
   result = bor | SET; 

   printf("\t%s\t%d\n",to_binary(bor),bor); 
   printf("|\t%s\t%d\n",to_binary(SET),SET); 
   printf("=\t%s\t%d\n",to_binary(result),result); 
   return(0); 
} 

char *to_binary(int n) 
{ 
   static char bin[9]; 
   int x; 

   for(x=0;x<8;x++) 
   { 
       bin[x] = n & 0x80 ? '1' : '0'; 
       n <<= 1; 
   } 
   bin[x] = '0'; 
   return(bin); 
}

执行上面示例代码,得到以下结果:

hema@ubuntu:~/book$ gcc main.c
hema@ubuntu:~/book$ ./a.out
输入一个在 0 ~ 255 之间的数字: 168
        10101000        168
|       00100000        32
=       10101000        168