關鍵區別-位運算符與邏輯運算符
在編程中,有一些情況需要進行數學計算。運算符是編程語言的符號,用於對值或變量執行特定的邏輯或數學函數。編程語言中有各種各樣的運算符。其中一些是算術運算符、關係運算符、邏輯運算符、位運算符和賦值運算符。算術運算符支持數學運算,如加法(+)、減法(-)、除法(/)、乘法(*)、模(%)、遞增(++)和減量(–)。關係運算符是>、>=、<、<=、==或!=. 這些運算符有助於找到操作數之間的關係。賦值運算符將值從右側操作數賦給左側操作數。位運算符是&,|,^。邏輯運算符是&,| |,!。本文討論位運算符和邏輯運算符之間的區別。位運算符和邏輯運算符的關鍵區別在於,位運算符在位上工作並執行逐位操作,而邏輯運算符用於根據多個條件進行決策。
目錄
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版本:位運算符和邏輯運算符之間的差異