编程基础---位运算符及其应用

简介: 编程基础---位运算符及其应用

一元运算符

与(&)

概念

两个位都为1时,结果才为1

例:0&0=0 0&1=0 1&0=0 1&1=1

用处

a.清零

只要与一个各位都为零的数值相与,结果为零。

b.判断奇偶

判断最后一位是0或1来判断是奇是偶。

偶(a & 1) == 0

奇(a & 1) == 1

c.去一个数的指定位

若是要取一个数的后四位,只需要利用一个后四位数均为1的数相与

或(|)

概念

两个位都为0时,结果才为0

例:0|0=0 0|1=1 1|0=1 1|1=1

用处

a.将某些位数转为1

将某个数与想转为一的位设置位1的数取或可以实现将该数的某些位数转成1

异或(^)

概念

两个位相同为0,相异为1

例:0^0=0 0^1=1 1^0=1 1^1=0

用处

a.翻转指定位

将要翻转的数的位找一个该位为1其与为0的数异或

b.交换两个数

void Swap(int &a, int &b){
   if (a != b){
     a ^= b;
     b ^= a;
     a ^= b;
   }
}

c.判断是否同号

a^b > 0 同号

a^b < 0 异号

取反(~)

概念

0变1,1变0

例:0^0=0 0^1=1 1^0=1 1^1=0

用处

a.将一个数最低位转为0

使a的最低位为0,可以表示为:a & 1。1的值为 1111 1111 1111 1110,再按"与"运算,最低位一定为0

左移(<<)

概念

各二进位全部左移若干位,高位丢弃,低位补0

例:1001<<1 = 10010

用处

a.可实现*2的操作

右移(>>)

概念

各二进位全部右移若干位,对无符号数,高位补0,有符号数,各编译器处理方法不一样,有的补符号位(算术右移),有的补0(逻辑右移)

例:1001>>1 = 100

用处

a.可实现/2的操作

复合运算符

&= 例:a&=b 相当于 a=a&b

|= 例:a|=b 相当于 a=a|b

>>= 例:a>>=b 相当于 a=a>>b

<<= 例:a<<=b 相当于 a=a<<b

^= 例:a^=b 相当于 a=a^b

参考文章:菜鸟教程位运算


相关文章
Python语言基础---选择判断循环结构详解
Python语言基础---选择判断循环结构详解
|
21天前
|
程序员
R 语言教程 之 R 基础运算 1
本章介绍R语言的基础运算,包括赋值(使用`&lt;-`或`=`)和主要的数学运算符,如加、减、乘、除、乘方、整除及求余等,并通过实例演示了这些运算符的使用方法和运算优先级。
35 6
|
20天前
R 语言教程 之 R 基础运算 2
《R 语言教程 之 R 基础运算 2》介绍了 R 语言中的关系运算符及其使用方法。通过示例展示了如何利用 &gt;、&lt;、==、!=、&gt;=、&lt;= 等运算符比较两个向量的对应元素,并返回布尔值结果。
18 3
|
19天前
R 语言教程 之 R 基础运算 4
本章《R基础运算》介绍了R语言中的简单运算,重点讲解了赋值运算符的使用方法,包括向左、向右及等于赋值,并通过实例演示了不同赋值方式的效果。
21 1
|
19天前
R 语言教程 之 R 基础运算 5
本章介绍R语言的基础运算,涵盖简单的算术运算及特殊运算符,如冒号(:)创建数字序列、%in%判断元素是否存在于向量中、%*%进行矩阵乘法等,并通过实例演示这些运算符的使用方法。
23 1
|
20天前
R 语言教程 之 R 基础运算 3
本章介绍R语言的基础运算,涵盖逻辑运算符的使用,包括按元素逻辑与(&)、逻辑或(|)、逻辑非(!)及仅比较首个元素的逻辑与(&&)和逻辑或(||)运算符。通过实例演示了这些运算符在向量上的应用及其返回的布尔值结果。
24 2
|
18天前
|
机器学习/深度学习
R 语言教程 之 R 基础运算 6
本章《R基础运算》介绍了R语言中的基本数学运算与函数,包括求平方根、自然指数、对数等常用函数,并通过实例展示了这些函数的具体应用。例如,`sqrt(4)`返回2,`exp(1)`返回约2.718282等。
18 0
|
18天前
|
C语言
R 语言教程 之 R 基础运算 7
本章《R基础运算》介绍了R语言中的基本数学运算,包括取整、三角及反三角函数,以及正态分布等概率分布函数的使用方法。通过具体实例演示了这些函数在实际操作中的应用,如取整函数`round()`, `ceiling()`, `floor()`的特性,以及正态分布函数`dnorm()`, `pnorm()`, `qnorm()`, `rnorm()`的功能与区别。适合初学者快速掌握R语言的基础数学处理能力。
21 0
|
7月前
|
算法 Java
Java程序设计基础——位运算符简介
Java程序设计基础——位运算符简介
|
7月前
|
Java C++
Java程序设计基础——算术运算符
Java程序设计基础——算术运算符