博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C/C++ 位运算
阅读量:4216 次
发布时间:2019-05-26

本文共 734 字,大约阅读时间需要 2 分钟。

#include
using namespace std;int main() { /* 按位与运算 & 把某些位变成0 其余位不变 */ //把int类型低8位置0,其余不变 int n = 231; n &= 0xffffff00; printf("%d\n",n); //short类型的低8位置零 n &= 0xff00; //求int变量第7位是1 or 0 int a = 127; a &= 0x80;//与完判断第8位 是否是 0 (从1开始数) printf("%d",a == 0x80); /* 按位或 | 把某些位变成1 其余位不变 */ // 低8位变成1 ,高位不变 c |= 0xff; /* 按位异或 ^ 某些位取反 其他位不变 */ //低8位取反,其他位不变 n ^= 0xff; /* 按位非 ~ */ ~n; /* 左移 << 右移 >> 左右移动不改变原变量 左移末尾补0 右移:有符号数,补上原符号位 无符号补 0 */ return 0; }
/*			有两个int 变量 a 和n(0 <= n < 31) 			写出一个表达式,使该表达式的值和a的第n位相同 		*/ 		int res;		a = 10;		res = (a >> n) & 1;  //二进制从0位开始计数 		//或者 		res = ((1 << n)&a) >> n;//这种 n != 31 因为 此时 最后与的是符号位 再右移会补上符号位可能产生错误

转载地址:http://pgimi.baihongyu.com/

你可能感兴趣的文章
静态链表——sharing
查看>>
静态链表——sorting
查看>>
DFS——背包问题
查看>>
DFS——选数问题
查看>>
BFS——求矩阵中“块”的个数
查看>>
BFS——走迷宫的最小步数
查看>>
并查集——好朋友
查看>>
关键路径
查看>>
STM32开源代码——DHT11程序
查看>>
STM32开源代码——DS18B20
查看>>
STM32开源代码——光敏传感器
查看>>
STM32开源代码——UART串口程序
查看>>
个人项目——STM32接入机智云教程
查看>>
STemWin学习笔记——字体
查看>>
STemWin学习笔记——XBF格式字体显示
查看>>
STemWin学习笔记——TTF格式字体显示
查看>>
STemWIn学习笔记——汉字显示(外部存储器)
查看>>
Python学习笔记——Python提高-2
查看>>
Python学习笔记——多任务-进程
查看>>
Python学习笔记——多任务-线程
查看>>