逻辑位运算

来源:互联网 发布:网络骑士哪一部最好看 编辑:程序博客网 时间:2024/05/18 02:00

位运算:

//正数的补码:与原码相同。//负数的补码:符号位为1,其余位为该数绝对值的原码按位取反;然后整个数加1。#include <stdio.h>#include <stdlib.h>#include <string.h>int main(){    int bit_1,bit_2,bit_3;     bit_1 = 12;             //00001100    bit_2 = 7;              //00000111    bit_3 = -8;             //11111000     printf("AND运算:%d\n",bit_1 & bit_2);    printf("OR运算:%d\n",bit_1 | bit_2);    printf("XOR运算:%d\n",bit_1 ^ bit_2);    printf("NO运算:%d\n", ~ bit_2);    printf("NO运算:%d\n", ~ bit_3);    system("pause");    return 0;}

位操作:

#include <stdio.h>#include <stdlib.h>#define BIT2 (0x01<<2)int main(){    int a=3;//  a |= BIT2;           //设置BIT2位 //  a &= ~BIT2;          //清除BIT2位     a &= (a-1);          //清除最后一位     printf("SET:%d\n",a);    system("pause");}

使用异或运算交换变量值:

#include <stdio.h>#include <stdlib.h>int main(){    int x,y;    printf("Input two dates:");    scanf("%d %d",&x,&y);    printf("x=%d,y=%d\n",x,y);    x=x^y;    y=x^y;    x=x^y;    printf("x=%d,y=%d\n",x,y);    system("pause");    }
原创粉丝点击