按位(bitwise)和逻辑运算符(logical operators)的区别

在编程中,有一些情况需要进行数学计算。运算符是编程语言的符号,用于对值或变量执行特定的逻辑或数学函数。编程语言中有各种各样的运算符。其中一些是算术运算符、关系运算符、逻辑运算符、位运算符和赋值运算符。算术运算符支持数学运算,如加法(+)、减法(-)、除法(/)、乘法(*)、模(%)、递增(++)和减量(–)。关系运算符是>、>=、<、<=、==或!=. 这些运算符有助于找到操作数之间的关系。赋值运...

关键区别-位运算符与逻辑运算符

在编程中,有一些情况需要进行数学计算。运算符是编程语言的符号,用于对值或变量执行特定的逻辑或数学函数。编程语言中有各种各样的运算符。其中一些是算术运算符、关系运算符、逻辑运算符、位运算符和赋值运算符。算术运算符支持数学运算,如加法(+)、减法(-)、除法(/)、乘法(*)、模(%)、递增(++)和减量(–)。关系运算符是>、>=、<、<=、==或!=. 这些运算符有助于找到操作数之间的关系。赋值运算符将值从右侧操作数赋给左侧操作数。位运算符是&,|,^。逻辑运算符是&,| |,!。本文讨论位运算符和逻辑运算符之间的区别。位运算符和逻辑运算符的关键区别在于,位运算符在位上工作并执行逐位操作,而逻辑运算符用于根据多个条件进行决策。

目录

1. 概述和主要区别
2.什么是位运算符
3. 什么是逻辑运算符
4. 位运算符与逻辑运算符的相似性
5. 并排比较-按位与表格式的逻辑运算符
6.摘要

什么是定义的位运算(bitwise operators)?

按位运算符操作位并执行逐位操作。在加、减、乘、除等计算中,这些值被转换成二进制。这些操作是在位级别执行的。位级处理用于提高速度和节省电力。下面是按位运算符的一些示例。&表示按位和。|表示按位或。^表示按位异或。~是补码。&lt;符号表示左移位,&gt;符号表示右移位。

按位与运算如下。当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。

按位(bitwise)和逻辑运算符(logical operators)的区别

图01:位运算符和逻辑运算符

当变量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版本:位运算符和逻辑运算符之间的差异

引用

  • 发表于 2020-10-19 16:48
  • 阅读 ( 817 )
  • 分类:IT

你可能感兴趣的文章

语法错误(syntax error)和逻辑错误(logical error)的区别

...阅读每一条语句并自己识别错误。逻辑错误的一个例子是运算符的错误使用。如果程序员使用除法(/)运算符而不是乘法(*),则这是一个逻辑错误。 什么是语法错误与逻辑错误的相似性(the similarity between syntax error and logical e...

  • 发布于 2020-10-19 09:24
  • 阅读 ( 745 )

&(&)和&&(&&)的区别

...与逻辑与) 在编程中,有一些情况需要进行数学计算。运算符是对值或变量执行特定逻辑或数学函数的符号。操作发生的值或变量称为操作数。编程语言中有各种各样的运算符。其中一些是算术运算符、关系运算符、逻辑运算...

  • 发布于 2020-10-19 16:03
  • 阅读 ( 377 )

逻辑(logic)和原因(reason)的区别

逻辑(logic)和原因(reason)的区别 逻辑和理性是哲学中经常一起使用的两个术语。逻辑与理性的关键区别在于,逻辑是对论据形式的系统研究,而理性则是运用逻辑来理解和判断事物。 逻辑是什么意思? 逻辑学是对论证形式的...

  • 发布于 2020-10-28 03:33
  • 阅读 ( 331 )

逻辑地址(logical address)和实际地址(physical address)的区别

逻辑地址和物理地址之间的关键区别在于CPU在程序执行期间生成逻辑地址,而物理地址是内存单元中的一个位置。 简单地说,CPU生成逻辑地址或虚拟地址。从正在运行的程序的角度来看,项目似乎位于逻辑地址提供的地址。...

  • 发布于 2020-11-05 21:35
  • 阅读 ( 1126 )

如何在excel中使用逻辑函数:if、and、or、xor、not

...或为false时要执行的操作。 与逻辑函数一起使用的比较运算符 使用单元格值执行逻辑测试时,需要熟悉比较运算符。你可以在下表中看到这些的分解。 现在让我们看一些实际的例子。 if函数示例1:文本值 在这个例子中,我...

  • 发布于 2021-04-03 20:24
  • 阅读 ( 317 )

差分放大器(differential amplifier)和运算放大器(operational amplifier)的区别

主要区别-差分放大器与运算放大器 放大器是电子电路中极为重要的元件。差分放大器和运算放大器之间的主要区别在于,差分放大器是一种放大其输入端之间电压差的放大器,而运算放大器实际上是一种具有大开环增益...

  • 发布于 2021-06-27 08:19
  • 阅读 ( 418 )

符合逻辑的(logical)和实际地址(physical address)的区别

逻辑地址和物理地址的主要区别在于,逻辑地址是CPU生成的虚拟地址,而物理地址是主存储器中的实际位置。 计算机的一个组成部分是内存。每个内存位置都由一个地址组成,以唯一地标识它。有两种类型的地址称为逻辑地址...

  • 发布于 2021-06-30 20:05
  • 阅读 ( 601 )

新的(new)和C++中删除运算符(delete operator in c++)的区别

C++中new和Delphi运算符的主要区别在于new被用来为对象或数组分配内存,而DELATE用于释放使用新运算符分配的内存。 有两种类型的记忆作为静态和动态记忆。假设一个语句,比如int a;int数组[10];程序员已经知道这些变量需要多...

  • 发布于 2021-07-01 04:35
  • 阅读 ( 179 )

运行时错误(runtime error)和逻辑错误(logical error)的区别

...可用的内存位置。相反,逻辑错误可能是由于错误地使用运算符和不正确的指令序列造成的。这是运行时错误和逻辑错误之间的另一个区别。 结论 运行时错误和逻辑错误的主要区别在于,运行时错误是由于程序中的非法操作而...

  • 发布于 2021-07-01 04:57
  • 阅读 ( 616 )

复制构造函数(copy constructor)和赋值运算符(assignment operator)的区别

复制构造函数和赋值运算符的主要区别在于,复制构造函数是一种有助于创建已存在对象的副本而不影响原始对象值的构造函数,而赋值运算符是一种有助于将新值赋给程序中变量的运算符。 构造函数是一种特殊的方法,在创...

  • 发布于 2021-07-01 05:44
  • 阅读 ( 531 )
f116r9o7
f116r9o7

0 篇文章

相关推荐