利用数学知识快速理解按位与& 按位或| 按位异或^ 按位取反~
2014-06-18 10:27
281 查看
#include <stdio.h> int main() { int Test0 = 1; //二进制0001 int Test1 = 2; //二进制0010 //先来看按位与,直接理解为数学里面的两个集合求交集 //由于Test0和Test1二进制每个位没有交集则结果为0 printf( "%d\n", Test0 & Test1); //按位或,理解为数学里面的两个集合求并集 //由于Test0和Test1二进制存在不同的二进制位则都保留结果为0011为3 printf( "%d\n", Test0 | Test1); //按位异或,理解为数学里面两个集合求交集之外的并集 //由于Test0和Test二进制没有相同的位没有交集则直接为求并集结果为3 //如果是13 ^ 6 = 1101 ^ 0110 忽略交集部分为1001 | 0010结果为1011十进制为11 printf( "%d\n", Test0 ^ Test1 ); //按位反,理解为数学求一个集合的补集 //Test0为int32位则二进制为0000 0000 0000 0000 0000 0000 0000 0001 //则Test0的二进制补集为:1111 1111 1111 1111 1111 1111 1111 1110则十进制结果为-2(负数使用补码表示)(无符号int则为0xFFFFFFFF - 1) printf( "%d\n", ~Test0 ); return 0; }
相关文章推荐
- 编程思想才是精髓の如何利用数学知识编程小例
- 读好文章,快速理解COM组件知识,10分钟深刻阅读,获得超过2000元的培训
- 求教!有什么技巧可以快速理解这些知识?
- Buffon投针实验 · 数学的直观理解 · 基础知识很重要
- ACM中的【数学知识】之【组合数学】(一) Polya定理的简单理解 POJ 1286
- 如何学习(4):利用旧知识理解新知识
- 数学知识之异或
- SGU261 一些数学知识入门与应用结合 原根 快速幂 离散对数 扩展欧几里得 单边元模线性方程
- 理解边缘检测,从0基础开始,数学知识是重点
- 【基础数学知识】带你理解泰勒展开式本质
- 位运算符(按位与&、按位或|、按位异或^、按位取反~)在程序的多个判定中起的作用
- 利用Python快速做LCD阴阳码转换(按位取反)
- Rightmost Digit(快速幂+数学知识OR位运算)
- HDU-4569 Special equations (利用数学知识巧妙降低复杂度)
- Eclipse快速上手Hibernate--2. 利用Hbm映射文件开发
- 利用vs.net快速开发windows服务(c#)
- 5分钟快速理解ERP思想(转)
- 利用OpenMCU加深对H.323协议的理解——H.323协议阅读心得(2)
- Eclipse快速上手Hibernate--3. 利用XDoclet开发
- 快速导出数据到Excel(一):利用剪贴板