官术网_书友最值得收藏!

2.5.2 布爾邏輯和布爾操作符

由于計算機使用二進制系統(只有0、1),所以所有計算機程序必須以某種方式利用這個系統執行極其復雜的任務。在計算機中,通常0等同于false,而1等同于true。布爾邏輯是代數學的子集,用于創建true/false語句。因此,只返回true或false的操作符(類似AND、OR和NOT操作符)稱為布爾操作符。通過將多個二進制(或布爾)語句連接在一起,計算機程序可以執行復雜的計算。

例2.19說明這些操作符如何工作。

例2.19 使用邏輯操作符 對于這個例子,假定num=1,判斷以下每個表達式是true還是false?

a)((2*num)+1==3)&&(num>2)

b)((2*num)+1==3)||(num>2)

c)!(2*num==0)

·在a)中,因為(2*1+1)與3相同,所以第一個簡單條件是true,而第二個條件是false(num不大于2)。因此,這個復合的AND條件是false。

·在b)中,其結果為true,即使如a)所示的一個條件是true,而另一個false。然而,OR操作符在對整個表達式求值時,只要發現兩個條件之一為true就可以返回true。

·在c)中,由于2*num=2,即2*num不等于0,所以條件2*num=0是false,而整個條件是true。

例2.20說明這些操作符如何工作。

例2.20 再次使用邏輯操作符 對于這個例子,假定N=6、P=4和S=18,判斷以下每個表達式是true還是false?

a)(N*P)>S&&S>(P+N)

b)(S/N!=3)||(N*P<S)

c)!(2*N+P==S-2)

·在a)中,兩個簡單條件是true(6*4大于18,而18大于6+4)。當兩個條件是true時,AND操作符求值為true。

·在b)中,結果是false,因為兩個簡單條件都是false(18/6等于3,因此說它不等于3是false,而且6*4不小于18)。對于OR操作符,當兩個條件之一是true時求值為true,而當兩個條件都是false時求值為false。

·在c)中,由于2*6+4=16和18-2=16,所以表達式2*N+P==S-2是true。NOT操作符對結果取反,因此NOT true是false。也就是說這個表達式!(2*N+P==S-2),值為false。

主站蜘蛛池模板: 新化县| 南投市| 宜兴市| 大余县| 铜鼓县| 偃师市| 微山县| 依安县| 准格尔旗| 秦安县| 西昌市| 台前县| 车致| 沙坪坝区| 佛冈县| 唐海县| 琼中| 奉新县| 措勤县| 晋中市| 宜春市| 都匀市| 同江市| 赤水市| 珠海市| 兰溪市| 民勤县| 手机| 东方市| 三都| 铁力市| 合肥市| 元谋县| 修文县| 南木林县| 肇州县| 东阿县| 雅安市| 博白县| 宾川县| 泗洪县|