逻辑位运算
2017-05-28 11:18
113 查看
位运算:
位操作:
使用异或运算交换变量值:
//正数的补码:与原码相同。 //负数的补码:符号位为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"); }
相关文章推荐
- C/C++位操作实例总结
- C++位操作的常见用法小结
- golang 位操作
- 位操作实现四则运算
- 位操作实现加法
- 用+,-,移位实现除法运算
- 【LeetCode】Single Number II
- 位操作的原理
- C# 位操作
- leetcode:Divide Two Integers菜鸟解法
- 联合体+位域,实现位操作,并可以整体读出
- Codility -- PermMissingElem
- [leetcode 190]Reverse Bits
- [leetcode 191]Number of 1 Bits
- Leetcode:Repeated DNA Sequences
- 461. Hamming Distance
- 477. Total Hamming Distance
- [LC136] Single Number
- 318. Maximum Product of Word Lengths
- 位操作_求二进制中1的个数