关键区别-位运算符与逻辑运算符
在编程中,有一些情况需要进行数学计算。运算符是编程语言的符号,用于对值或变量执行特定的逻辑或数学函数。编程语言中有各种各样的运算符。其中一些是算术运算符、关系运算符、逻辑运算符、位运算符和赋值运算符。算术运算符支持数学运算,如加法(+)、减法(-)、除法(/)、乘法(*)、模(%)、递增(++)和减量(–)。关系运算符是>、>=、<、<=、==或!=. 这些运算符有助于找到操作数之间的关系。赋值运算符将值从右侧操作数赋给左侧操作数。位运算符是&,|,^。逻辑运算符是&,| |,!。本文讨论位运算符和逻辑运算符之间的区别。位运算符和逻辑运算符的关键区别在于,位运算符在位上工作并执行逐位操作,而逻辑运算符用于根据多个条件进行决策。
目录
1. 概述和主要区别
2.什么是位运算符
3. 什么是逻辑运算符
4. 位运算符与逻辑运算符的相似性
5. 并排比较-按位与表格式的逻辑运算符
6.摘要
什么是定义的位运算(bitwise operators)?
按位运算符操作位并执行逐位操作。在加、减、乘、除等计算中,这些值被转换成二进制。这些操作是在位级别执行的。位级处理用于提高速度和节省电力。下面是按位运算符的一些示例。&表示按位和。|表示按位或。^表示按位异或。~是补码。<;符号表示左移位,>;符号表示右移位。
按位与运算如下。当x和y是操作数,x的值为0,y的值为0,则按位和为0。当x为0,y为1时,按位和为0。如果x为1,y为0,则按位和为0。当x和y都有1时,按位和为1。只有当两个操作数都包含值1时,输出才会为1。假设20和25是两个值。20的二进制数是10100。25的二进制数是11001。这两个数的位和是10000。执行逐位“与”运算时,值“1”仅在两个操作数都包含一个时出现。
按位或运算如下。当x和y是操作数,x的值为0,y的值为0,则按位“或”为0。当x为0,y为1时,输出为1。当x为1,y为0时,输出为1。当x和y的值都为1时,输出为1。对于两个操作数,如果其中一个操作数为1,则按位“或”为1。假设20和25是两个值。20的二进制数是10100。25的二进制数是11001。20和25的位“或”是11101。
如果两个值不同,则按位异或运算符将给出1。当x和y操作数为零时,按位异或为0。当x为0,y为1时,输出为1。当x为1,y为0时,输出为1。当x和y都为1时,输出为0。20和25的位异或是01101。~符号是取值的补码。20的二进制值是10100。补码为~20=01011。它是将一转换为零,并将零转换为一。
<<是二进制左移运算符。左操作数值按右操作数指定的位数左移。在例5<<1中,5的二进制值为0101。0101<>是二进制右移运算符。左操作数值按右操作数指定的位数向右移动。例如,5>>10101>>1是0010。
什么是逻辑运算符(logical operators)?
逻辑运算符用于根据多个条件做出决策。&&符号表示逻辑AND。| |符号表示逻辑OR。这个!符号表示逻辑“不”。在逻辑AND中,如果两个操作数都非零,则条件变为真。在逻辑或中,如果两个操作数都非零,则条件变为真。这个!运算符可以反转操作数的逻辑状态。如果条件为真,则逻辑NOT运算符将使其为false。真表示值1,假表示值0。
当变量x的值为1,变量y的值为0时,逻辑“与”(x&&y)为false或0。逻辑“或”(x | | y)将给出真或1。NOT运算符反转逻辑状态。当x的值是1时,那么!x是0。当y值为0时,那么!y是1。
什么是位运算符与逻辑运算符的相似性(the similarity between bitwise and logical operators)?
- 它们都是编程中对值或变量执行特定逻辑或数学函数的运算符。
按位(bitwise)和逻辑运算符(logical operators)的区别
位运算符与逻辑运算符 | |
位运算符是编程语言提供的用于执行计算的运算符类型。 | 逻辑运算符是编程语言提供的一种运算符,用于执行基于逻辑的操作。 |
功能 | |
按位运算符处理位并执行逐位操作。 | 逻辑运算符用于根据多个条件做出决策。 |
主题 | |
按位运算符是&,|,^,~,<>。 | 逻辑运算符是&,| |! |
总结 - 按位(bitwise) vs. 逻辑运算符(logical operators)
在程序设计中,必须进行数学和逻辑运算。它们可以通过使用运算符来实现。有各种类型的操作员。本文讨论了位运算符和逻辑运算符这两种运算符的区别。位运算符和逻辑运算符的区别在于,位运算符处理位并执行逐位操作,而逻辑运算符用于根据多个条件进行决策。
下载位对逻辑运算符的pdf
你可以下载这篇文章的PDF版本,并根据引文说明离线使用。请在此处下载PDF版本:位运算符和逻辑运算符之间的差异