按位运算 & 、|、^、~
来源:互联网 发布:js 获取get参数 编辑:程序博客网 时间:2024/06/16 00:00
& 按位与
| 按位或
^ 按位异或~按位取反
运算量只能是整型或字符型的数据,不能为实型数据。
1. 按位与 双目运算符
对应两个二进位均为1时,结果位为1,否则为0。
参与运算的数以补码方式出现。例如:6&5 :
00000110 (6的二进制补码)
&00000101 (5的二进制补码)=
00000100 (1的二进制补码)
可见6&5=4。
int main()
{
int a=6,b=5,c;c=a&b;
printf(" a=%d\n b=%d\n c=%d\n",a,b,c);
}2. 按位或 双目运算符。
只要对应的两个二进位有一个为1,结果位就为1。
参与运算的两个数均以补码出现。
例如:6|5 :
00000110
|00000101
00000111 (7)
可见6|5=7
int main()
{
int a=6,b=5,c;c=a|b;
printf(" a=%d\n b=%d\n c=%d\n",a,b,c);
}
3. 按位异或 双目运算符。
当两对应的二进位相异时,结果为1。
参与运算的数以补码形式出现。
例如6^5 :
00000110
^00000101 =
00000011 (3)
int main(){
int a=6,b=5,c; c=a^b;
printf(" a=%d\n b=%d\n c=%d\n",a,b,c);
}
4.按位取反 单目运算符。
假设有一个数~9,计算步骤如下:
9=1001 ,
其补码为01001,
对其取反10110(每一位,包括符号位均取与原来相反的数),这个数是在内存中存放的,现在需要转换成原码,即先减1,然后取其反码得
11010,符号位为1是负数,即 -10
11010,符号位为1是负数,即 -10
按位取反规律:假设有一个数a,则
~a=-(a+1)
可以通过以下代码验证:
main()
{
int a=-2313,c,d;
c=~a;
d=-(a+1);
printf("a=%d\n c=%d\n d=%d\n",a,c,d);
}
{
int a=-2313,c,d;
c=~a;
d=-(a+1);
printf("a=%d\n c=%d\n d=%d\n",a,c,d);
}
0 0
- 按位运算
- 按位运算符
- 按位运算
- 按位运算符
- 按位操作运算
- 按位运算符
- 按位运算 & 、|、^、~
- 按位运算
- 按位运算符
- 按位运算妙用
- 按位运算
- 按位运算符& | ~ ^ >> <<
- 按位运算符
- 按位运算
- 按位运算符
- JAVA按位运算
- 按位运算
- 按位运算
- VS2010使用心得体会
- 如何剪辑视频文件
- Linux驱动程序第二章——驱动分类
- 黑马程序员 java基础知识加强---枚举
- DevExpress.XtraGrid
- 按位运算 & 、|、^、~
- Android休眠唤醒机制简介(一)
- 用格式工厂转换RMVB视频为iphone 4s支持的MP4-AVC视频
- 彻底解决快播不可点播方法
- 展讯mipi接口LCD调试流程(基于Android4.0版本以后)
- 安装了迅雷却无法下载的解决方法
- notepad2替换为系统默认文本编辑器
- std::stringstream 数据转换
- 酷狗怎么转换音乐格式