二進制布爾運算是對二進制數進行布爾運算的一種運算。二進制數的布爾運算有“與”、“或”、“非”和“異或”4種,二進制布爾運算在計算機編程中有廣泛的套用,二進制布爾運算符為與(&),或(|),異或(^),當其運算元是布爾值時,它們就是邏輯運算符。
基本介紹
- 中文名:二進制布爾運算
- 外文名:Binary Boolean Operation
- 類型:邏輯運算
- 套用:計算機編程
- 命名者:喬治·布爾
- 時間:1947年
基本概念,運算規則,運算符及套用,計算方法,
基本概念
布爾運算簡介
喬治·布爾(George Boole,1815.11.2~1864),用數學方法研究邏輯問題,成功地建立了邏輯演算,出版了《邏輯的數學分析》。他用等式表示判斷,把推理看作等式的變換。這種變換的有效性不依賴人們對符號的解釋,只依賴於符號的組合規律 。這一邏輯理論人們常稱它為布爾代數。20世紀30年代,邏輯代數在電路系統上獲得套用,隨後,由於電子技術與計算機的發展,出現各種複雜的大系統,它們的變換規律也遵守布爾所揭示的規律。
二進制布爾運算
二進制數的布爾運算有“與”、“或”、“非”和“異或”4種,二進制布爾運算在計算機編程中有廣泛的套用。
運算規則
布爾運算是一種邏輯運算,邏輯運算是指對因果關係進行分析的一種運算。邏輯運算的結果並不表示數值大小,而是表示一種邏輯概念,若成立用真或1表示,若不成立用假或0表示。
二進制數的布爾運算有“與”、“或”、“非”和“異或”4種。
“與”運算(AND)
“與”運算又稱邏輯乘,用符號“×”或“∧”來表示。運算規則如下:
0∧0 = 0
0∧1 = 0
1∧0 = 0
1∧1 = 1
即當兩個參與運算的數的對應碼位中有一個數為0,則運算結果為0,只有兩碼位對應的數都為1結果才為1。這與二進制數乘法運算是一樣的。
“或”運算(OR)
“或”運算又稱邏輯加,用符號“+”或“∨”表示。運算規則如下:
0∨0 = 0
0∨1 = 1
1∨0 = 1
1∨1 = 1
即當兩個參與運算數的相應碼位只要有一個數為1,則運算結果為1,只有兩碼位對應的數均為0,結果才為0。
“非”運算(NOT)
“非”運算實現邏輯否定,即進行求反運算,用符號“—”表示。“非”運算規則:
0 = 1
1 = 0
注意“非”運算只是針對一個數所進行的“運算”,這與前面的“與”和“或”運算不一樣,它的實質意義就是取反。如“10111101”進行“非”運算後就得到“01000010”,對比相應位即可驗證以上運算規則了。
“異或”運算(XOR)
“異或”運算用符號“⊕ ”來表示。其運算規則如下:
0⊕0 = 0
0⊕1 = 1
1⊕0 = 1
1⊕1 = 0
即當兩個參與運算的數取值相異時,運算結果為1,否則為0。
運算符及套用
二進制布爾運算符:與(&),或(|),異或(^),當其運算元是布爾值時,它們就是邏輯運算符。對於運算符兩邊的運算元不管真假與否,都會先計算出來結果後再進行布爾邏輯運算;當其運算元是整數時,它們就是位運算符。
“與”運算符
與運算符用符號“&”表示,其使用規律如下:
兩個運算元中位都為1,結果才為1,否則結果為0,例如下面的程式段。
public class data13
{
public static void main(String[] args)
{
int a=129;
int b=128;
System.out.println("a 和b 與的結果是:"+(a&b));
}
}
運行結果:
a 和b 與的結果是:128
public class data13
{
public static void main(String[] args)
{
int a=129;
int b=128;
System.out.println("a 和b 與的結果是:"+(a&b));
}
}
運行結果:
a 和b 與的結果是:128
“a”的值是129,轉換成二進制就是10000001,而“b”的值是128,轉換成二進制就是10000000。根據與運算符的運算規律,只有兩個位都是1,結果才是1,可以知道結果就是10000000,即128。
“或”運算符
或運算符用符號“|”表示,其運算規律如下:
兩個位只要有一個為1,那么結果就是1,否則就為0,下面看一個簡單的例子。
public class data14
{
public static void main(String[] args)
{
int a=129;
int b=128;
System.out.println("a 和b 或的結果是:"+(a|b));
}
}
運行結果
a 和b 或的結果是:129
public class data14
{
public static void main(String[] args)
{
int a=129;
int b=128;
System.out.println("a 和b 或的結果是:"+(a|b));
}
}
運行結果
a 和b 或的結果是:129
a 的值是129,轉換成二進制就是10000001,而b 的值是128,轉換成二進制就是10000000,根據或運算符的運算規律,只有兩個位有一個是1,結果才是1,可以知道結果就是10000001,即129。
“非”運算符
非運算符用符號“~”表示,其運算規律如下:
如果位為0,結果是1,如果位為1,結果是0,下面看一個簡單例子。
public class data15
{
public static void main(String[] args)
{
int a=2;
System.out.println("a 非的結果是:"+(~a));
}
}
public class data15
{
public static void main(String[] args)
{
int a=2;
System.out.println("a 非的結果是:"+(~a));
}
}
“異或”運算符
異或運算符是用符號“^”表示的,其運算規律是:
兩個運算元的位中,相同則結果為0,不同則結果為1。下面看一個簡單的例子。
public class data16
{
public static void main(String[] args)
{
int a=15;
int b=2;
System.out.println("a 與 b 異或的結果是:"+(a^b));
}
}
運行結果
a 與 b 異或的結果是:13
{
public static void main(String[] args)
{
int a=15;
int b=2;
System.out.println("a 與 b 異或的結果是:"+(a^b));
}
}
運行結果
a 與 b 異或的結果是:13
a 的值是15,轉換成二進制為1111,而b 的值是2,轉換成二進制為0010,根據異或的運算規律,可以得出其結果為1101 即13。
計算方法
二進制布爾運算符:與(&),或(|),異或(^),當其運算元是布爾值時,它們就是邏輯運算符。對於運算符兩邊的運算元不管真假與否,都會先計算出來結果後再進行布爾邏輯運算;當其運算元是整數時,它們就是位運算符。
條件布爾運算符:條件與(&&),條件或(||),條件非(!)運算符,只能對布爾值進行計算,並且從左到右,如果有一個運算元為真,就不再計算它右邊的運算元,直接得出計算結果。