新知识-位运算(Leetcode 217_存在重复元素)
时间:2021-08-11
本文章向大家介绍新知识-位运算(Leetcode 217_存在重复元素),主要包括新知识-位运算(Leetcode 217_存在重复元素)使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
新知识-位运算
&、|、^、~、>>、<<
- 计算机对二进制位数进行的运算(+-*/),符号位共同参与运算。
-
按位与运算符(&)
(*)
两个1才为1,出0则0;-
负数先进行补码转换再进行
与运算
-
清零:将某数清零,将其所有位数与0相与,结果为0;
-
取指定位
- 比如10110010想取其后四位,只需要将其与00001111相与,也就是说,将需要获得的位数与1相与保留本身,将其他位与0想与,便可达到取位的作用.
- 10110010 & 00001111 = 00000010
-
判断奇偶
最末位为0为偶数,最末位为1为奇数
- 因此可以用(if ( a & 1 == 0)) 取代 (if (a % 2 == 0 )).
-
-
按位或运算符(|)
(+)
两个0才为0,出1则1;- 设1
- 某些位设1 0010010 | 01100000 = 11110010
- 设1
-
异或运算(^)
相同为0,不相同为1;
-
交换律、结合律、xx=0,x0=1、自反(abb=a^0=a)
-
翻转指定位 10111110 ^ 00001111 = 10110001
-
与0相异或值不变
-
交换2个数
-
void Swap(int &a, int &b){ if (a != b){ a ^= b; b ^= a; a ^= b; } }
-
-
-
取反运算符(~)
0变1,1变0
-
最低位变0
a & ~1 = 10110001 & 11111110 = 10110000
-
-
左移右移运算符
(<< >>)
-
所有位数左移,高位丢,低位补0
-
10110110 << 2 = 11011000
若
左移时舍弃的高位不包含1
,则每左移一位,相当于该数乘以2.
-
-
(>>) 所有位右移,无符号高位补0,有符号,各编译器分为算数右移(补符号位)和逻辑右移(补0)
-
-
不同长度的数据进行位运算:如果两个不同长度的数据进行位运算时,系统会将二者按右端对齐,然后进行位运算。
-
long与int相与 4个字节、2个字节,右边对齐,当
- 整数数据为正时,左边补16个0
- 为负,左边补16个1
- 无符号,左边补16个0
-
菜鸟教程学习打卡
原文地址:https://www.cnblogs.com/husiyu/p/15128820.html
- 线程安全的Generic Dictionary
- Python 项目实践三(Web应用程序)第五篇
- CentOS 6.3下 安装 Mono 3.2 和Jexus 5.4
- Python 项目实践三(Web应用程序)第四篇
- 负载均衡环境下缓存处理
- WordPress Ajax 异步加载 自定义评论表情
- “分期网”域名fenqi.wang以16888元成交
- Python 项目实践三(Web应用程序) 第三篇
- Python 项目实践三(Web应用程序)第二篇
- 第一个IronPython程序(之一)
- mono-3.4.0 源码安装时出现的问题 [do-install] Error 2 [install-pcl-targets] Error 1 解决方法
- 安装 IronPython
- Python 项目实践三(Web应用程序)第一篇
- Centos 7.0 安装Mono 3.4 和 Jexus 5.6
- 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 数组属性和方法
- 62. Vue 饿了么Mint UI组件的基本使用
- 【colab pytorch】数据处理
- requests+lxml+xpath爬取豆瓣电影
- python之子类继承父类时进行初始化的一些问题
- 【猫狗数据集】定义模型并进行训练模型
- springmvc之处理模型数据Map
- requests+lxml+xpath爬取电影天堂
- 【python-leetcode90-子集】子集Ⅱ
- 【colab pytorch】保存模型
- 【猫狗数据集】保存训练模型并加载进行继续训练
- django-URL匹配(二)
- opengl-球体的绘制
- 【python-leetcode46-子集】全排列
- 【python-leetcode784-子集】字母大小写全排列
- 悬挂引用是如何被Rust消灭的?