C/C++中的位运算
时间:2021-08-30
本文章向大家介绍C/C++中的位运算,主要包括C/C++中的位运算使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
位运算的操作对象是整数类型,在运算过程中,整数被看作二进制的集合,位运算的功能是提供检查和设置二进制的功能。位运算遵从左结合律。
~(位求反),<<(左移),>>(右移),&(位与),^(位异或),|(位或)。
(1)左移(<<):把二进制位向左移位,右侧插入0进行补位。
(2)右移(>>): 把二进制向右移位,如左侧对象是无符号位,则插入为0的二进制。若为带符号类型,插入符号位的副本或者为0的二进制,视具体情况而定(原来第一个操作数是正数,补0;若是负数,补1)。
(3)位取反(~):对二进制逐位取反。
注:位运算是对补码进行运算的。
例: 二进制 无符号a 10011011
对a左移8位:
00000000 00000000 10011011 00000000
对a右移3位:
00000000 00000000 00000000 00010011
1.取一段数据中的特定几位数,用左移,右移。
2.对某几位清零,可用与。清零位为0,
3.对某位置1,可用或。置1位为1
4.对某几位取反,用求反。
5.对某两个数进行交换,用异或。
void swap1(int& a, int& b)
{
a ^= b;
b ^= a;
a ^= b;
}
例:取某数据的高8位,低8位数据,并合并成新数据的举例,见https://blog.csdn.net/hanxiaoyong_/article/details/88775395
原文地址:https://www.cnblogs.com/zzzsj/p/15205037.html
- Vue.js系列之四计算属性和观察者
- EF基础知识小记四(数据库=>模型设计器)
- OEA ORM 框架中的冗余属性设计
- MIS性能优化常见问题与方案(辅助项目组性能优化的总结贴)
- 使用自定义行为扩展 WCF
- android多线程下载3
- android多线程下载2
- android多线程下载1
- ASP获取微信小程序的OpenID服务器端代码
- 手把手教你用python抢票回家过年 !(附代码)
- 技术总结:自动扩张WPF树型表格列宽
- 部署Microsoft .NET Framework 3.0[翻译]
- 性能优化总结(六):预加载、聚合SQL应用实例
- 性能优化总结(五):CSLA服务端如何使用多线程的解决方案
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Android ListView实现无限循环滚动
- ignite:一个漂亮的多用户SS/SSR面板
- FreshRSS:开源免费的RSS阅读器
- 使用snap快速安装RocketChat你的聊天服务器
- CuteOne:一款基于Python3的OneDrive多网盘挂载程序,带会员/同步等功能
- Baidu Sitemap Generator在PHP7无法生成XML的解决方法
- MFC实现的Socket通信
- 128-在线翻译
- C语言CGI编程二 - 编写cmd后门
- android 获取视频第一帧作为缩略图的方法
- Flutter利用注解生成可自定义的路由的实现
- Android实现随意拖动View效果的实例代码
- Kotlin的枚举与异常示例详解
- Android自定义View的使用及其原理知识点总结
- Android中Window的管理深入讲解