c语言位运算、a++、++a操作
来源:互联网 发布:点读笔能下载什么软件 编辑:程序博客网 时间:2024/05/29 18:54
位运算,就是对一个比特(Bit)位进行操作。8个比特构成一个字节(Byte)
C语言提供了六种位运算符:
运算符 & |^ ~ << >>
说明 按位与 按位或 按位异或 取反 左移 右移
按位与运算(&)
一个比特(Bit)位只有 0 和 1 两个取值,只有参与&运算的两个位都为 1 时,结果才为 1,否则为 0。例如1&1为 1,0&0为 0,1&0也为 0,这和逻辑运算符&&非常类似。
按位或运算(|)
参与|运算的两个二进制位有一个为 1 时,结果就为 1,两个都为 0 时结果才为 0。例如1|1为1,0|0为0,1|0为1,这和逻辑运算中的||非常类似。
按位异或运算(^)
参与^运算两个二进制位不同时,结果为 1,相同时结果为 0。例如0^1为1,0^0为0,1^1为0。
取反运算(~)
取反运算符~为单目运算符,右结合性,作用是对参与运算的二进制位取反。例如~1为0,~0为1,这和逻辑运算中的!非常类似。
左移运算(<<)
左移运算符<<用来把操作数的各个二进制位全部左移若干位,高位丢弃,低位补0。
右移运算(>>)
右移运算符>>用来把操作数的各个二进制位全部右移若干位,低位丢弃,高位补 0 或 1。如果数据的最高位是 0,那么就补 0;如果最高位是 1,那么就补 1。
#include <stdio.h>void bit_operation();int main(){int c;int a=10;c=a++;printf("先赋值后运算\n");printf("1、c=%d \n",c);printf("2、a=%d \n",a);a=10;c=a--;printf("2、c=%d \n",c);printf("4、a=%d \n",a);printf("先运算后赋值\n");a=10;c=++a;printf("5、c=%d \n",c);printf("6、a=%d \n",a);a=10;c=--a;printf("7、c=%d \n",c);printf("8、a=%d \n",a);bit_operation();}//位运算void bit_operation(){unsigned int a = 60; /* 60 = 0011 1100 */ unsigned int b = 13; /* 13 = 0000 1101 */int c = 0; c = a & b; /* 12 = 0000 1100 */ printf("1、c=%d\n", c );c = a | b; /* 61 = 0011 1101 */printf("2、c=%d\n", c );c = a ^ b; /* 49 = 0011 0001 */printf("3、c=%d\n", c );c = ~a; /*-61 = 1100 0011 */printf("4、c=%d\n", c );c = a << 2; /* 240 = 1111 0000 */printf("5、c=%d\n", c );c = a >> 2; /* 15 = 0000 1111 */printf("6、c=%d\n", c );}
结果:
先赋值后运算1、c=102、a=112、c=104、a=9先运算后赋值5、c=116、a=117、c=98、a=9位运算:1、c=122、c=613、c=494、c=-615、c=2406、c=15Press any key to continue
1 0
- c语言位运算、a++、++a操作
- c语言位操作运算
- C语言位操作总结 位运算
- C语言 - 位运算置0操作
- A+B(位运算)
- C语言位运算
- C语言位运算
- C语言位运算
- c语言位运算
- C语言位运算
- c语言位运算
- C语言位运算
- c语言位运算
- C语言位运算
- C语言位运算
- C语言位运算
- C语言位运算
- c语言位运算
- JAVA用画板JFrame画布Panel画笔Graphics画100个星星可以任意拖拽,可以按上下左右控制字或者月亮的移动,shift控制移动字还是月亮-end版
- C语言中的面向对象思想
- SQL中union的常用用法~~解决数据拼凑、表中两列合并等问题
- Spring实战1:Spring初探
- ServletConfig对象的方法
- c语言位运算、a++、++a操作
- 关于handler机制的部分理解
- Android冷启动白屏解析,带你一步步分析和解决问题
- 66. Plus One
- Android API之Drag&Drop
- Patrick and Shopping(距离比较)
- 给swf添加链接的方法
- 源码分析-java-LinkedList
- push & concat