您的位置:首页 > 编程语言 > C语言/C++

C语言位运算符

2014-01-21 10:26 190 查看
#include<stdio.h>
int main()
{
/***************************************
*  9的二进制是:b1001
*  5的二进制是:b0101
**************************************/
printf("二进制0b1001是:%d\n",0b1001);
printf("二进制0b0101是:%d\n",0b0101);

/***************************************
* 按位与运算符:&,两个数字相同位全部为1时,结果位为1
*
*   1001
*   0101
* --------
*   0001
**************************************/
printf("9与5(9 & 5)的值为:%d\n",9 & 5);
/***************************************
* 按位或运算符:|,两个数字相同位只要有一个数字为1,结果位为1
*
*   1001
*   0101
* --------
*   1101
**************************************/
printf("9 或 5 (9 | 5)的值为:%d\n",9 | 5);
/***************************************
* 按位异或运算符:^,两个数字相同位只要不相同,结果位为1
*
*   1001
*   0101
* --------
*   1100
**************************************/
printf("9 异或 5 (9 ^ 5)的值为:%d\n",9 ^ 5);
/***************************************
* 按位取反运算符:~,数字位0变1,1变0
* 9的完整二进制:
* ~0000 0000 0000 0000 0000 0000 0000 0000 1001
*  1111 1111 1111 1111 1111 1111 1111 1111 0110
*
**************************************/
printf("9按位取反(~9) 的值为:%d\n", ~9 );
/***************************************
* 左移运算符:<<,最高位舍去,低位补0
* 9的完整二进制:
* 0000 0000 0000 0000 0000 0000 0000 0000 1001
* 9 << 1
* 0000 0000 0000 0000 0000 0000 0000 0001 0010
*
**************************************/
printf("9左移1位 (9 << 1)  的值为:%d\n", 9 << 1  );
/***************************************
* 右移运算符:>>,底为舍去,符号位不变,一般情况下其它位用符号位补全
* 9的完整二进制:
* 0000 0000 0000 0000 0000 0000 0000 0000 1001
* 9 << 1
* 0000 0000 0000 0000 0000 0000 0000 0000 0100
*
**************************************/
printf("9右移1位(9 >> 1)  的值为:%d\n", 9 >> 1  );

return 0;
}


二进制0b1001是:9
二进制0b0101是:5
9与5(9 & 5)的值为:1
9 或 5 (9 | 5)的值为:13
9 异或 5 (9 ^ 5)的值为:12
9按位取反(~9) 的值为:-10
9左移1位 (9 << 1)  的值为:18
9右移1位(9 >> 1)  的值为:4
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: