按位运算符和算术运算符是两种不同的运算符,它们在计算机编程中有着各自的用途,下面将详细介绍这两种运算符,并使用小标题和单元表格进行说明。
按位运算符
按位运算符是对二进制数的每一位进行操作的运算符,常见的按位运算符有以下几种:
1、按位与(&):当两个相应的二进制位都为1时,结果为1,否则为0。
2、按位或(|):当两个相应的二进制位有一个为1时,结果为1,否则为0。
3、按位异或(^):当两个相应的二进制位不同时,结果为1,否则为0。
4、按位取反(~):对一个二进制数进行取反操作,即将0变为1,将1变为0。
5、左移(<<):将一个二进制数的所有位向左移动指定的位数,右边用0填充。
6、右移(>>):将一个二进制数的所有位向右移动指定的位数,左边用符号位填充。
算术运算符
算术运算符是对数值进行基本数学运算的运算符,常见的算术运算符有以下几种:
1、加法(+):将两个数值相加。
2、减法():将一个数值减去另一个数值。
3、乘法(*):将两个数值相乘。
4、除法(/):将一个数值除以另一个数值。
5、取模(%):返回除法的余数。
6、幂运算(**):返回一个数的指数次幂。
7、整除(//):返回两个数相除后的整数部分。
8、取负():返回一个数的相反数。
下面是按位运算符和算术运算符的对比表格:
运算符 | 描述 | 示例 | ||
按位与 | 当两个相应的二进制位都为1时,结果为1,否则为0 | a = 5 (二进制:0101) b = 3 (二进制:0011) a & b = 1 (二进制:0001) | ||
按位或 | 当两个相应的二进制位有一个为1时,结果为1,否则为0 | a = 5 (二进制:0101) b = 3 (二进制:0011) a | b = 7 (二进制:0111) | |
按位异或 | 当两个相应的二进制位不同时,结果为1,否则为0 | a = 5 (二进制:0101) b = 3 (二进制:0011) a ^ b = 6 (二进制:0110) | ||
按位取反 | 对一个二进制数进行取反操作,即将0变为1,将1变为0 | a = 5 (二进制:0101) ~a = 6 (二进制:1011) | ||
左移 | 将一个二进制数的所有位向左移动指定的位数,右边用0填充 | a = 5 (二进制:0101) a | ||
右移 | 将一个二进制数的所有位向右移动指定的位数,左边用符号位填充 | a = 6 (二进制:1011) a >> 2 = 3 (二进制:1111) | ||
加法 | 将两个数值相加 | a = 5 b = 3 a + b = 8 | ||
减法 | 将一个数值减去另一个数值 | a = 5 b = 3 a b = 2 | ||
乘法 | 将两个数值相乘 | a = 5 b = 3 a * b = 15 | ||
除法 | 将一个数值除以另一个数值 | a = 5 b = 3 a / b = 1.6666666666666667 | ||
取模 | 返回除法的余数 | a = 5 b = 3 a % b = 2 | ||
幂运算 | 返回一个数的指数次幂 | a = 5 a ** 2 = 25 | ||
整除 | 返回两个数相除后的整数部分 | a = 5 b = 3 a // b = 1 | ||
取负 | 返回一个数的相反数 | a = 5 a = 5 |
下面是一个按位运算符和算术运算符的介绍,其中包含了它们的符号、描述以及示例(假设整数变量a = 10
和b = 3
,二进制表示分别为1010
和0011
):
按位运算符
符号 | 描述 | 示例(假设 a = 10, b = 3) | ||
& | 按位与 (AND) | a & b 结果为2 (二进制0010 ) | ||
| 按位或 (OR) | a | b 结果为11 (二进制1011 ) | |
^ | 按位异或 (XOR) | a ^ b 结果为9 (二进制1001 ) | ||
~ | 按位取反 (NOT) | ~a 结果为11 (二进制~1010 ) | ||
| 左移 | a 结果为 | ||
>> | 右移 | a >> b 结果为1 (二进制0001 ) |
算术运算符
符号 | 描述 | 示例(假设 a = 10, b = 3) |
+ | 加法 | a + b 结果为13 |
| 减法 | a b 结果为7 |
| 乘法 | a * b 结果为30 |
/ | 除法 | a / b 结果为3 (整数除法) |
% | 取模(余数) | a % b 结果为1 |
+ | 一元加(正号) | +a 结果为10 |
| 一元减(负号) | a 结果为10 |
请注意,示例中给出的结果是基于假设的变量a
和b
的值,对于按位取反~
运算符,由于它执行的是补码操作,结果会根据操作系统的符号表示法(在大多数现代系统上使用的是补码表示法)而有所不同,在介绍中,~a
结果显示为11
是因为按位取反后,得到的二进制数被解释为有符号整数的补码形式。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/693361.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复