C语言的位移运算符
来源:互联网 发布:ecs windows svn搭建 编辑:程序博客网 时间:2024/05/18 05:01
1:位与:&
只有两个操作数的对应位都为1结果才为1 (用真假描述,只有两个操作数都为真结果才为真)
用法:掩码
(10010011)&(00111101)= (00010001)
2:位或:|
其中任意操作数中对应的位为1,那么结果位就为1(如果任意一个操作数为真,或两个都为真,那么结果为真)
用法:打开位 fla |=1
(10010011)|(00111101)= (10111111)
3:位异或:^
操作数中的对应位有一个为1(但是不都为1),那么结果为1(如果两个操作数中有一个为真,但是不都是真,那么结果为真)
用法:转置位 既如果该位打开,则关闭该位;如果该位关闭,则打开该位;
(10010011)^(00111101)=(10101110)
4:按位取反:~
将每个1变为0,将每个0变为1
用法:关闭位 fla &=~1
~(10011010)=(01100101)
5:左移:<<
操作数的每位向左移动,移动的位数由其右侧操作数指定,空出的位用0填充
用法 bu <<n ;bu 乘以2的n次幂
(10001010)<<2 =(00101000)
6:右移:>>
操作数的每位向右移动,移动的位数由其右侧操作数指定,丢弃移出左侧操作数右端的位
对于unsigned类型,使用0填充空出的位;对于有符号类型,结果依赖于机器
用法 bu >>2 ;如果bu为非负,则bu 除以2的n次幂
(10001010)>>2 =(00100010) // 无符号类型
只有两个操作数的对应位都为1结果才为1 (用真假描述,只有两个操作数都为真结果才为真)
用法:掩码
(10010011)&(00111101)= (00010001)
2:位或:|
其中任意操作数中对应的位为1,那么结果位就为1(如果任意一个操作数为真,或两个都为真,那么结果为真)
用法:打开位 fla |=1
(10010011)|(00111101)= (10111111)
3:位异或:^
操作数中的对应位有一个为1(但是不都为1),那么结果为1(如果两个操作数中有一个为真,但是不都是真,那么结果为真)
用法:转置位 既如果该位打开,则关闭该位;如果该位关闭,则打开该位;
(10010011)^(00111101)=(10101110)
4:按位取反:~
将每个1变为0,将每个0变为1
用法:关闭位 fla &=~1
~(10011010)=(01100101)
5:左移:<<
操作数的每位向左移动,移动的位数由其右侧操作数指定,空出的位用0填充
用法 bu <<n ;bu 乘以2的n次幂
(10001010)<<2 =(00101000)
6:右移:>>
操作数的每位向右移动,移动的位数由其右侧操作数指定,丢弃移出左侧操作数右端的位
对于unsigned类型,使用0填充空出的位;对于有符号类型,结果依赖于机器
用法 bu >>2 ;如果bu为非负,则bu 除以2的n次幂
(10001010)>>2 =(00100010) // 无符号类型
0 0
- C语言的位移运算符
- C语言的位移运算
- C语言的位移运算
- C语言的位移运算
- c语言位移运算
- C语言中位移运算的规则
- C语言中位移位运算符
- C语言中位移位运算符
- C语言中位移位运算符
- C语言中位移位运算符
- C语言中的位移运算
- C语言中的位移运算
- C语言中的位移运算
- C语言中位运算符--位移运算符
- C语言写的位移运算,一看就懂
- C语言之位移位运算符和按位运算符
- Java的位移运算符
- Java的位移运算符
- 卸载open vm tools
- Android权限注解
- quick-cocos2d-x简单模态框编写
- PS运动模糊+径向模糊+高斯模糊
- haskell Monad: Status Monad
- C语言的位移运算符
- DataReader 性能研究
- 机器学习与数据挖掘_线性模型 II
- 2015融博面试总结
- python(8) shelve
- @java--liang 这是一款HTML5的前端视频Jquery组件,里面有41个播放器Demo。
- cygwin可以像Linux(apt-get)那样安装软件
- jpg格式转pdf格式转换器免费
- POJ 2002 二分法