2.3 Booleans
"!#%$'&)($+*,&-.",/,103245(65575&8,1:9
;=<?>1< 03( <
@- ,A,1CB5 -.0 <ED - ,:B5!,5,:",F#G *IH
!J,1 D K05.H?55,1 < L "!#NM$'&)!",O03
P 0 0+&QR$ < ,RS6T:03F,503U.9WVX03!Y(6-Z&Z&6,1Cbool
G$ < ![24\5C%0]T^05H_5C$' -`0 < ,a0 <bP 00+&cd$ < ,
$ <XD (6*e0 < &)*fT:5(g0]TF#",:O05H_CC$' -.0 < ,A,C!1hiBC4K0jdk"H?5",5,G$'&Z&#%0+#5U,:9
VX03!f(- &l&_&cd$+ < 03(bK075M$'&)!m$'KndkUH?C",5,C-`0 < ,o- < M0+&)M1- <p #q *IH
Sr!,C- <p
bool
9
sKtvuwKx`y#z5{|wKz5}v{|x6~C:}:x]{u3
t[Ix{sx]tv~s.{~5s.x6
x_~L+u3}z"1Ox]tv{Ou3. ~xKt{|v%u3x_~5s/{x]~CwKs
u3x]tv~5{|w11}v~w1v 3~5sC¡xKt~C%+u3}¢{|rvw]u£[:£|^z5u3~}{|x]t¢7x_~tvu3sK~:}v~w1v 3~
{s~Cxuwz5u3vsK{s`x]su3u3v~q_u3sKsK{8£[|~
11}v~¤u3v|+¥6¦w] 3}:£|+¡v1|}~Csu3=sK}vztAx~5s:w]~q+~RwK
~"1s`¤x]uw]~Cvw]~CsK~5x5¡'~R+~5/{|x]tvu3}x§s`_~5v¨v{v 1q~5uwKw]~5sKu3}w]zC~5s5¥r©uU~C+~Cw"¡+18x]tvu3} 3tqsK}vzdt
x_~Cs:wK~o}vsK~Cª}?{z5~CwKx]1{z5{|w]z5}vs.x]1vz5~5s5¡+u3}z"1?«¬x6¨vu|uxu3{'x]~Cw]~Cs.x]{v z5u3}x:x]{u3vs
{8x]tx]tv~5f¥=¦x]~Cw1 ¡xKt~Rw]~q{s6vuu~Cw:x]{|u37u37x]tv~5ux]tv~Cw6x]t17xKt~o{¨v~5'x]{|x+¥
® u¡~Cx}vsw]~R[tw:sK~@x]tv~@:£_uU+~¯}~Cs.x]{u3?°
t[IxX{s?x]tv~sK{|[|~5s.x?vu3y xKw]{8{ª1'6ox_~@+u3}
z"1Lx]tv{u3K±¦x]~Rw²x]tv~:£_uU+~¨v{sKz5}vsKsK{|u3L~z5~CwKx:{v|t5+~u3v~z"1v¨v{¨:x]~°=ox³_~{8x]tL
11}v~
w: 3~ox]t:xzCu3s.{s.x]s´u3=~Rµv1zRx]|Lxu~5~5~Cx]s5¥¦x´¶wKs.xsK{| 3tx"¡vsK}vztA/x_~qL"1 +:{
:v_~"Iw+~CwK7{{|xK~5¨?¥·6~C+~CwKx]tv~5|~5sKs5¡~
{|_sK~5~q£~5uU¸xKt[Ix{|x1uUsªuwL:L{'x]~Cw]~5s`x]{v u_~Cw]:x]{u3vs5¥X¦zCx]}1|+¡1sK}vzdtLx~{ssK}¹zC{~5x1s@£[1s.{s@ªuw1{v¨vs@u3[z5u3}vx]:x]{u3vs§+u3}
z"14{L1 3{v~¥/º#»6~5z"1Z¡_ªuwq~Rµ1~¡JxKt[Ix
{|x]~5 w]1=}v£_~Cw]sz"1A£_~w]~Cvw]~5sK~Cx]~5¨^{4£{:wK
ªuw]L:x5¡x]t:x6{s5¡v}vsK{v x]tv~oxu11}v~5s 0 1v¨ 1 u3v|+¥½¼
2.3.1 Boolean functions
¾ t~1~f¿]Àuu3~":Áns.x]~5sw]u3xKt~/À@wK{|x]{sKtfLIx]tv~5L:x]{zC{ª17Âo~5uw] 3~/Àuu3~º
1815Ã 1864 ¼
tvu{u3v~5~Cw]~C¨^{A~5s.xI£[|{sKtv{v z5u3vv~5zCx]{|u3s£_~Rx³~C~5^u3 3{|z1v¨^s./£u3{z¤: 3~C£vw¥qÀ@fx]tv~
x]~CwK P 00+&QR$ < TC! < B" -.0 < ~¤¨v~5vux]~¤nª}vzRx]{u3 f : Ä n → Ä ¡[t~Rw]~ Ä := {0, 1} :¨ n Å^Æ ¥
º#»6~"1¨ 0 1s T:$'&),1 1v¨ 1 :s "! ¥Ç¼
|~":w]|Ax]tv~}£_~Cwqu3¨v{|È~CwK~5x/Àuu3~"1^ª}vzCxK{u3vs¤{sq¶v{|x]~/ªuw~C+~CwK^¶vµ~5¨ n É@Ê µ~Rw.y
z5{s.~4Ë"ÌF1s`s+u3}Ox]uAsKtvuUEt:x~Rµ1zCx]8ax]tv~5{|w}£_~Cw¤{s5¥ ¾ uA 3{8+~+u3}7¶vw]s.x/tv{x5°Íuw
Î 0 1v¨
n = 1 x]tv~Cw]~:w]~qu387ªu3}woÀuu3~"1fª}vvzCx]{u3vs5¡x]tv~qxuz5u3vs.x:xª}vvzCx]{u3vs c0 : x →
¾
Î 1 ¡§xKt~{¨v~5xK{|x^{¨ : x →
Î x 1v¨ax]tv~v~5 +:xK{u3¢·Ï
Î x ¡§tv~CwK~ 0 := 1 1v¨
c1 : x →
:x→
1 := 0 ¥
Gx]tv~ªu3uU{v L~nw]~5s.x.w]{zCxu3}wªuz5}vs¤x]uf}v:wKG:¨G£{:wKaÀuu3|~"1Gª}vvzCx]{u3vs5¡§xKt[Ix
{s5¡=ª}vvzCx]{|u3sqw]u3 Ä uw Ä 2 xKu Ä ¥ ® }vztOª}vvzCx]{u3vsIw]~u3s.x¤zCu3+~5v{~5'x]|^¨~CsKzCw]{|£~5¨:s
sKL1|§x:£~x]t:xo{s.xKsxKt~ª}vzRx]{u3411}v~5s
ªuw¤:=_u3sKsK{|£~/:wK 3}~Cx]s5¥¦^~Rµv1~ªuwq
£{:wKOÀuu3~"1%ª}vzRx]{u3{|s/¦·Ð : (x, y) →
Î x ∧$ y<XD sKtvuU{ͧ{ 3}w]~LѺ#3¼d¥¢Zx{|s1~C¨
¦·ÐÒ£~5z"1}vsK~ x ∧ y = 1 {|1v¨Yu3v|O{ x = 1
y = 1 ¥NÓru3}L5 3}v~5s.stOx]tv~
´Xb
@X66
ª }vvzCx]{u3 f : (x, y) →
Î x ∨ y ¨v~C¶v~5¨G{¢Í§{ 3}w]~/ѺZ£J¼o{|s
z":~5¨¢Ï»
¥L GQ:zCx"¡xKt~Rw]~:wK~xu
_u3sKs.{|£~±{'x]~CwKvw]~Cx]:x]{u3vsu3x]tv~±uw]¨ ¿.uw]Á°4Óru3} z"1Yw]~"1¨Y{|x1s%¿K:xL|~"1s.xLu3v~fu3³Á¡6£}x
}vs.x:s~5{|x/z":~"1i¿.~5{|x]tv~Cw¥5¥"¥Kuw]Á¡rx]t:x{s5¡¿.~dµv1zCxK|%u3~u3³Á¥ ¾ t~ª}vvzCx]{u3xKt[Ix
z5uwKwK~5s._u3v¨vs6xKuxKt~oª:x.x]~Cw{'x]~CwKvw]~Rx:x]{u3L{ssKtvuU{±Í§{| 3}vwK~Ѻ zU¼R¥@Zx6{s}vsK}1|wK~5ª~CwKw]~C¨7x]u
dkB5&)!J,C-ZM^03 ¥±Í§{ 3}w]~nѺ ~U¼
¨v~C{zCxKsqx]tv~nx:£~ªuw¤x]tv~}v:wK
1
s ´Ï» : (x, y) →
Î x y uw
¾
ª}vvzCx]{u3±·Ï ¥
x
0
0
1
1
y x∧y
0
0
1
0
0
0
1
1
!
x
0
0
1
1
y x∨y
0
0
1
1
0
1
1
1
#"%$&'!
Figure 4: 4
x
0
0
1
1
y x y
0
0
1
1
0
1
1
0
)(*+$&'!
x
0
0
1
1
y x↑y
0
1
1
1
0
1
1
0
-,./'!
x x
0 1
1 0
)01$23!
kv$+2Hm&Q",´T:03 P 010+&cd$ < TC! < B" -.0 < ,:9
Í {| 3}vwK~^ÑsKtvuUs }vs.x±Oª~Cg~Rµv1~Cs5¥ ©uU~C+~Cw"¡{ Oz5~Cw.x1{esK~Cs.~¡
{8x
§
sKtvuUs+u3}e~R+~CwKxKt{| :£_u3}xL£[{|[IwKNÀuu3~": ª}vzRx]{u3vs5¥ ® u3~Au3qx]tv~5s.~aª}vzRx]{u3vs7Iw]~
sKu±ª}vv¨1~5'x1=x]t:x CM5"* £{:wKaÀuu3~":^ª}vvzCx]{u3Gz":a£_~ 3~5v~CwIx]~5¨Gw]u3 x]tv~5f¥Íuw
~Rµ1~¡5´Ï»bz517£_~
3~5v~Cw:x]~C¨±w]u3 ¦·Ð¤¡Ï» 1v¨F·Ï ¾ °
Completeness.
´Ï» (x, y) = ¦·Ð ( Ï» (x, y), ·Ï ¾ (¦·Ð (x, y))).
vªuw]L18+¡=¿.~5{|xKt~Rwuw]Án~"1vs¿.uwKÁ£}xvuxL¿K:¨vÁ¥ÍvuwK}vª1s{8+~ox]tv{s´:w]~
~"1sK{||Lzt~Cz+~C¨
£ 3u3{v x]tw]u3}v 3tf1=ºZªu3}vw¼_u3s.sK{|£~z5u3£[{|[Ix]{u3vs²u3XIw] 3}v~5x]sC¥
® {{ªIw]|+¡²x]tv~Aª}vzCxK{u3e·´¦·Ð
: (x, y) →
Î x ↑ y ¨~CsKzCw]{|£~5¨ {Nͧ{ 3}w]~FѺ ¨[¼z"1N£_~
3~5v~CwIx]~5¨±w]u3Ò·Ï ¾ 1v¨±¦·ÐWº tv~5vz5~
xKt~o1~¥5¥5¥¼d°
·´¦·Ð (x, y) = ·Ï ¾ (¦·´Ð (x, y)).
6 ~Rx}vs¨v~C¶v~t:x~
~51£¿. 3~C~Rw:x]~5Á¥
0 < ,C- D 5a$O,1"
0]T4\C00+&QR$ < TR! < B" -`0 < ,:998 \5- < $+"*j\C00+&QR$ < TC! < B5 -.0 <
-Z,
Definition 2 7
BR$'&l&c D
\"*
-¬T
BdF$ < \C dkUH?C",5,1 D \5*W$GT:03"27!J&Q$b#J$'40 < &)*WBC0 < .$+- < ,f#
F
M$+"-³$\U&cgenerated
5,
$ <XD S6#
7BC0 f< ,C.$ < # ,
$ <XD S$ <XD #6TC! < B" -.0 < ,TC5032
9
x
y
0
1
F
: 03$,:"'; 0]T¤\"- < $+"*TC! < B" -.0 < ,CS$n,1"
0]T\"- < $+"*TR! < B" -`0 < ,- ,o,:$+- D K07\C
F
complete
- T$ <XD 0 < &)*f-¬TCM5"*TC! < B" -.0 <
; BR$ < \5 p < 5C$'K D \5* 9
fÅ
F
~q:w]~ouUbvw]~C[:w]~5¨7ªuwz5u3~Cx]~C~CsKswKuu3#¥
@4,:"0]TqTC! < B5 -.0 < , ¦·Ð Ï» ·Ï ¾ - ,aBR032Hm&Q"KT:03A#^,150]T^\5- < $+"*
{
,
,
}
P 00+&QR$ < RT ! < B" -`0 < ,:9
Theorem 1
Ë
B5J$+C$vB"K5"-Z,5 -.B¤MCB
Proof. ¦/£[{|[IwKÀuu3~51nª}vvzCx]{u3 f {srz5u3~Cx]~58¨v~5sKzCw]{8£_~5¨n£n{|xKs
K03
(f(0, 0), f(0, 1), f(1, 0), f(1, 1)) ¥Íuw~Rµv:[|~¡:¦·ÐOt1smzt[Iw1zCx]~Rw]{s.x]{|zr+~5zRx]uw (0, 0, 0, 1) ¡
uw 0001 ªuw¤sKtvuwKx"¥ 6 ~Cx f
¨v~5vux]~x]tv~Àuu3~"1Aª}vvzCx]{u3^{|x]tAzt[Iw1zCx]~Rw]{s.x]{|z+~CzCx]uw
b1 b2 b3 b4
b1 b2 b3 b4 ¥@Ívuw´~Rµ1~¡¦·´Ð = f0001 ¥
nx]tv~¶wKs.xrs.x]~Cu3x]tv~6vw]uu3#¡3~´sKtvuU x]t:x@1x]tvu3sK~6ª}vzRx]{u3vsz"1n£_~ 3~5v~Cw]:x]~5¨ntvu3sK~
zt:w1zCxK~Cw]{s.xK{z+~5zCx]uwz5u3x:{vs´sK{v 3~ 1 ¥@ v¨v~5~5¨?¡
f0001 (x, y)
f0010 (x, y)
f0100 (x, y)
f1000 (x, y)
=
=
=
=
¦·Ð
¦·Ð
¦·Ð
·Ï ¾
(x, y),
¾
(x, ·Ï (y)),
¾
(y, ·Ï (x)),
( Ï» (x, y)).
¾ uztv~5z]ex]tv~aªuw]/}vªGªuw
f0010 ¡oªuwf~Rµv:[|~¡~az"1bzCwK~":x]~G%x:£~^ªuw7x]tv~aª}vzRx]{u3
¦·Ð (x, ·Ï ¾ (y)) 1s´{|±Í§{ 3}w]~oÑ1v¨±z5u3{vz5~ou3}vwKsK~5|+~5sx]t:xx]tv~w]~5sK}v|x]{| zt:w1zRx]~Cw]{s`x]{z
+~5zCxKuw{s 0010 ¥
x]tv~sK~5zCu3¨s.x]~Cm¡~sKtvuUex]t:x61Lª}vvzCx]{|u3tu3s.~zdt:w]1zCx]~CwK{s.x]{z+~CzCx]uw6{svu3
C~Cw]u
z"1£_~ 3~5v~Cw:xK~5¨?¥ ¾ tv{s{s¨vu3v~£Lz5u3£[{|{| x]tv~
:|w]~"1¨ 3~C~Rw:x]~5¨¿.sK{v 3~Ry 1Áª}vvzCx]{u3vs
x]tw]u3}v 3tfÏ»q¡t{|zdt7sK{|:¨¨vs6}±x]tv~5{|w 1 « sC¥@Íuw~Rµv1~1¡
f1100 (x, y) = Ïo» (f1000 (x, y), f0100(x, y)),
Ï » ( Ï» (f (x, y), f (x, y)), f (x, y)).
f0111 (x, y) = o
0100
0010
0001
/
~ :£s.x]1{Aw]u3 uwK{v x]tv{s:wK 3}~Cxu3}xªuw]L18+¡JsK{vz5~~£_~5{|~C+~¤x]t:x+u3}a 3~Cxo{|xKs
1s
{¨v~"¥rͧ{|[:|+¡~o 3~5v~Cw:xK~ f
0000
f0000 (x, y) = 0.
¾
¾
Ê µ~Cw]z5{|sK~Ë61s.sr+u3}nxKu
sKtvuU x]t:x=x]tv~´s.~Cx]s {¦·´Ð , ·Ï } ¡ { Ï» , ·Ï } ¡'1v¨~R+~5nx]tv~6sK~Cx
x]t:xz5u3vsK{|s.x]su3x]tv~sK{v 3~ª}vvzCx]{u3 { ·´¦·Ð } :w]~z5u3~Cx]~
ªuwx]tv~sK~Cxou3r£{:w.FÀuu3|~"1
ª}vvzCx]{u3vs5¥
2.3.2 The type bool
/6
¡'Àuu3~51vs§:wK~w]~Cvw]~5s.~5x]~C¨/£
x]tv~²ª}vv¨1~5'x13x_~ bool ¥=Zx]s1|}~rw1v 3~zCu3s.{s.x]s
3u _x]tv~x³u~C~5~5'x]s "!§ :¨ T:$'&),1 x]t:x6:w]~1s.sKuz5{:x]~5¨{8x]tx]tv~{|x]~Cw]1s true 1v¨ false ¡
w]~5s`_~5zCx]{8+~5|+¥rÍuw~Rµ1~¡
bool b = true ;
¨v~C¶v~5s1:w]{ª:£~ b u3mx_~ bool :¨{v{|x]{ª:{5~5s{|xx]u "! ¥
Íuw]L1|+¡Ix]tv~²x_~ bool {s1{xK~5 w1'x³_~¡+¨v~C¶v~5¨x]u£_~~CsKs 3~5v~Cw1x]t1 int ºltv{zt
{x]}w]±{s6~5sKs6 3~5v~Cw:mx]t1 unsigned int ¡vsK~5~ ® ~5zCx]{u3¥¥3¼d¥
´Xb
@X66
¾ v
t ~
zCu3[|~Cx]~sK~Rxu3m£[{|[IwKÀuu3|~"1ª}vzCxK{u3vs{s6"11{:£~{ªqxKt~ &Q0 p
Logical operators.
-.Bd$'&o05H5C$'K03U,
· мR¡ || º#Ïo»¼R¡X1v¨ ! º#·Ï ¾ ¼R¥u3[:w]~5¨Ax]u7x]tv~nvuxIx]{u3^}vsK~C¨%{|
&& ºZ¦
® ~5zCxK{u3 ¥ ¥Ë¤~s.{|±{¨v~5'x]{
"! 1v¨
T:$'&),1 ¥Àux]t
1 {8x]t
0 {|x]t
&& :¨ || :w]~£{8y
:wKfu~Cw:x]uwKs5¡tv{~ ! {|so}v:wK+¥¦|Xu_~Cw:¨vs:wK~w.1|}~Csu3rx~ bool ¡?1v¨^:Xu3 3{z51
u_~Cw]:x]uw]sq1sKuw]~Cx]}w]GwK11}v~5s
u3²xK_~ bool ¥ 6 {|+~{au3 3{|z5s5¡ && £{v¨vs
uwK~s.x.w]u3v 3|4xKt[:
|| ¡v1v¨ ! £{v¨vs6uwK~os`xKw]u3v 3|x]t1 && ¥
¾
tv~Cw]~²{s§1sKu´}£_~Cwu3u_~Cw]:x]uw]su3:w]{|x]tv~CxK{zXx_~5smtvu3sK~wK~5sK}v|x
Relational operators.
{su3x_~ bool ¥Íuw~"1zt^Iw]{|x]tv~Cx]{|zx_~¤x]tv~Cw]~~Rµ{s.xx]tv~sK{)µ 5"&ª$' -.0 < $'&605H_5C$'K03U, < ¡ > ¡
¾
<= ¡ >= ¡ == ¡?1v¨ != ¥ tv~5sK~/:w]~£{:wK7u_~Cw:xKuw]stvu3sK~¤xuwK11}v~u_~Cw:¨vs:wK~u3@sKu3~
:w]{8x]tv~Cx]{zx_~1v¨¢tvu3sK~nw]~5s.}8x{s1GwK11}v~u3²x_~ bool ¥ ¾ tv~u_~Rw:x]uw]s <= 1v¨ >=
z5uwKwK~5s._u3v¨fx]ux]tv~¤L:xKt~CL:x]{z":Jw]~5ªIx]{u3vsi1v¨
¡JwK~5s._~5zRx]{|+~5|+¥ ¾ tv~¤u~Cw:x]uw == x]~Cs.x]s
ªuw´~5¯}1{8x³:¨ != x]~5s.x]s6ªuw{|~C¯}1{|x+¥
® {vz5~
bool {|s=1{xK~5 w1'x³_~¡x]tv~wK~5ª:x]{|u3[:u_~Rw:x]uw]sL51s.ut"+~u~Cw1v¨vsXu3x_~
¾
T:$'&),1 "!§ ¥
bool ¥ t~w]~5s`_~5zCx]{8+~qz5u3[:w]{|sKu3vs:w]~o¨u3v~
1z5z5uwK¨{| /x]ux]tv~
z5u3'+~5xK{u3
<
Watch out! ¦
w]~C¯}v~5xq£_~5 3{vv~Cw"«¬so{|s.x:+~{sx]u7}vsK~/x]tv~n:sKsK{ 3v~5'x
u~Cw:x]uw =
tv~Cw]~x]tv~o~5¯}1{8x³Lu~Cw:x]uw == {s6~"1'x"¥
¦ s 3~5v~Cw:mw]}v~1¡v:w]{|x]tv~CxK{zu_~Cw]:x]uw]s£{v¨7uw]~os.xKw]u3v 3|xKt[:7w]~5ªIx]{u31u3v~5s5¡1v¨
x]tv~5sK~
{xK}vwK7£{v¨7uw]~s.xKwKu3 38x]t1x]tv~
u3 3{z"1Ju_~Cw:xKuw]s5¥
Boolean Evaluation Rule: À{:wK:wK{|x]tv~Cx]{zu_~Cw:xKuw]st[5+~
t{| 3t~Rw´vw]~5zC~5¨v~5vz5~
x]t1
w]~5:x]{u31u~Cw:x]uwKsC¡1v¨7x]tv~5sK~
t"+~otv{ 3tv~Cw6wK~5z5~5¨v~5vz5~ox]t17£{:wKLu3 3{|z"1u_~Rw:x]uw]sC¥
Íuw~Rµ1~¡x]tv~o~Rµvw]~CsKsK{u3
7 + x < y && y != 3 * z
{s6u3 3{z":|n[:wK~5x]tv~5s.{5~5¨f:s
((7 + x ) < y ) && ( y != (3 * z )).
À~z5:w]~5ª}v{|x]t
L:x]tv~5L:x]{|z"1IsKtvuwKx]z5}xXvuxIx]{u3osK}vzdt/1s a = b = c ¥¦sX´6
~Rµvw]~CsKsK{u3?¡
a == b == c
{s6vux´~C¯}v{|11~5'x´x]u
a == b && b == c.
À@ |~5xF1sKs.uz5{ªIx]{|{8x³ u3 == ¡x]tv~a~RµwK~5sKsK{u3 a == b == c {su3 3{z":|[:w]~5'x]tv~5sK{C~5¨¸1s
¡ 1v¨ c :w]~Iw]{ª:£~5su3x³_~ int {|x]t11}v~ 0 ¡+xKt~6~C11}:x]{|u3
(a == b) == c ¥r 1u3 a ¡ b '
{|~5¨vs
(0 == 0) == 0 −→ true == 0 −→ 1 == 0 −→ false ,
}vs.x´xKt~ouv_u3sK{|xK~ou3t:x+u3}±}vsK}1|L~51£
a = b = c¥
& 0 (1
'
0 " ., 0 !!#"$%& '.0()*+( ,"$.0- 0*( 0 ,.0- ( 0!
¾ tv~~58yZvuUªuw]/}vª1~´u3_tuUNxKu¤~Rµvw]~CsKs¦·ÐN{x]~Rw]su3mÏ»N:¨
{|z5~+~Cw]sK´{|xKtqx]tv~²tv~5|u3·Ï ¾ ¡3:w]~²1~C¨1x]~Cw§x]tv~À@w]{|xK{sKtL:x]tv~5LIx]{z5{ª:¦}v 3}s`x]}vsXÐ~
uw] +1fºKË"Ì Ã Ë"Ì ËU¼R¥X©~661s²{u3v~5~Cw@{s.£_u3{|z1 3~C£vwo1v¨u3 3{z5sC¥X¦sKuox]tv~´w]{| 3uw]u3}vs
ªuw]/}vª:x]{u3u36¿.L:x]tv~5L:xK{z"1{|¨v}vzCx]{|u3Áq1s~vuI 1v¨}s.~{|xx]u¨" 3u~Cs²£J:zx]utv{f¥
¾ t~o¨v~Ry uwK +1y#ªuw]/}vª1~s.x:xK~ox]t:xoº {|f6
y#ª: 3}1 3~"¼
De Morgan’s laws.
!( x && y ) == (! x || ! y )
1v¨
!( x || y ) == (! x && ! y ) .
¾ t~CsK~qªuw]/}vª1~z"17u3x]~5±£_~o}vsK~5¨±x]u/xKw1vsKªuw] P 00+&cd$ < dkUH?C",5,C-`0 < º#17~Rµvw]~5s.sK{u3fu3
x _~ bool ¼{'x]un4¿.sK{~Rw]Á~5¯}v{|11~5'x6ªuw]f¥rÍvuw´~Rµ1~¡
!( x < y || x + 1 > z ) && !( y <= 5 * z || !( y > 7 * z ))
z"17~5¯}v{|11~5'x]|£_~wK{|xKx]~571s
x >= y && x + 1 <= z && y > 5 * z && y > 7 * z
tv{zt{s´zC~":w]8wK~5ª~Cw:£~o{7xK~Cw]su3w]~51¨:£{{|x+¥
Íuwuw]~n¨v~Cx:{s
:£_u3}xqvw]~5zC~5¨v~5vz5~5s/1v¨%1sKsKuz5{ª:x]{8{|x]{|~5su3xKt~nu3 3{z"1r1v¨Gw]~5:x]{u31
u_~Cw]:x]uw]s5¡UsK~C~ ¾ I£[|~ ¥§Óru3}
L5¶v¨oxKt{|sm{|ªuwKL:x]{u3tv~58[ª}v3{
uw]¨v~Cw?x]u6sKu3|+~ Ê µ~Cw]z5{|sK~ ¥
Description
u3 3{z":vux
~5sKs
w]~":xK~Cw
~5sKs6uw´~5¯}1
w]~":xK~Cwuw´~5¯}[:
~5¯}1|{|x
{v~5¯}1|{|x
u3 3{z":_1v¨
u3 3{z":uw
Table 2:
Operator
!
<
>
<=
>=
==
!=
&&
||
Arity
Ë
Prec. Assoc.
Ë
Ë3Ë
3Ë Ë
3Ë Ë
3Ë Ë
Ë Ë 5RBC D < BC", $ <XD '$ ,5,101B5-`$' -lM- -`",¸0]Tj&Q0 p -.Bd$'&A$ <XD
05H_5R$ <XD ,L$ <XD 5 " !J < M$'&)!",L$+Cn"M$'&!§",I9
w]{| 3tx
~Cx
~Cx
~Cx
~Cx
~Cx
~Cx
~Cx
~Cx
C"&Q$' -`0 < $'&405H_CC$'K03U,:9
8
&Z&
Zx¤{|s
_u3sKs.{|£~x]t:xox]tv~nxu±u_~Rw1v¨vsqu3wK~5ª:x]{|u3[:ru~Cw:x]uw
¾
t5+~¨v{|È~CwK~5x²x_~¥ t{|s²z"1sK~{s@xKwK~":x]~5¨L{x]tv~s]1~66"n1s²ªuwx]tv~:w]{|xKt~Rx]{zu_~Cw]:x]uw]s5¥
¾ t~z5u3u3sK{|x]~²~dµvw]~5sKs.{u3{s=~C11}:xK~5¨nu3/x]tv~6uwK~ 3~5v~Cw1x~¡3x]uotv{zt/x]tv~u_~Cw]1v¨nu3
x]tv~o~5sKs6 3~5v~Cw1_x~
{s6{{zC{|x]|/z5u3'+~CwKx]~5¨?¥@ 7[:wKx]{|z5}vª:w"¡ bool u_~Rw1v¨vs´Iw]~
zCu3+~CwKxK~5¨
x]ux]tv~qw]~Cs._~5zCxK{|+~{x]~C w1x_~u3=x]tv~ux]tv~Cwu_~Cw:¨?¥©´~Cw]~¡x]tv~¤11}v~ TI$'&8,1 {sz5u3'+~CwKx]~5¨
x]u 0 ¡1v¨ "!§ x]u 1 ¥E qx]tv~4{x]~C w1x_~A{s int ¡x]tv{sz5u3'+~Cw]sK{u3e{|s¨v~C¶v~5¨ x]u%£_~^
H?503240+ -.0 < ¥=¦ wKu3ux]{u3{s@os.~5z5{ª1vz5u3'+~Cw]sK{|u3ªuw@tv{ztnx]tv~6oes`x1v¨:w]¨n 3}:w]1x]~C~5s
x]t:x6vun{vªuw]LIx]{u3L 3~Cx]s6u3s.x"¥
Conversion and promotion.
´Xb
@X66
Ñ
¾ tv~z5u3'+~Cw]sK{|u3^ 3u~Cs{x]uxKt~qux]tv~Cw¨v{|w]~5zCxK{u3Fªuwu3 3{z"1mu_~Cw]:x]uw]s5¥ A{8µ~5¨f~Rµvw]~Cs`y
sK{u3vs5¡+x]tv~{|x]~5 w]1vu_~Cw1v¨vsu3Ju3 3{z"1vu_~Rw:x]uw]s@:w]~´z5u3+~RwKx]~5¨x]u bool {s.}zto65/x]t:x
TI$'&8,: 1v¨f1ux]tv~Cw611}v~
{|s´z5u3'+~CwKx]~C¨±x]u "! ¥
0 {s´zCu3+~CwKxK~5¨±x]u
¾ tv~5s.~z5u3'+~Cw]sK{u3vs1sKux:+~ª1z5~{
{v{|x]{ª:{ ":xK{u3vsJ1v¨q1sKsK{ 3v~5'x]s5¡I1sm{
xKt~rªu3uU{| ~Rµ1~5s5¥
bool b = 5; // b is initialized to true
int i = b ; // i is initialized to 1
2.3.3 Short circuit evaluation
¾ t~~C:}:x]{u3u3_~Rµvw]~5s.sK{u3vs²{'+u3|{v u3 3{z"1v:¨wK~5ª:x]{|u3[:u~Cw:x]uwKs@vw]uzC~5~5¨vs1z5zCuw]¨y
{ v x]ux]tv~ 3~5v~Cw]1§w]}v~5sC¡_1s¨v{sKz5}vsKs.~5¨4{| ® ~CzCx]{u3vs ¥¥|ˤ1v¨ ¥¥ ¥©uU~C+~Cw"¡x]tv~CwK~{su3v~
{_uw.x1x²¨{8È~Cw]~CzC~
w]~5 +Iw]¨v{v x]tv~quwK¨~Rw{tv{zt7x]tv~qu~Cw1v¨vs´u3X1±u_~Cw]:x]uw:w]~q~R1)y
}:x]~5¨?¥
tv{~¤{|A 3~C~Rw1Xx]tv{suwK¨~Rw{s}vv¨~R¶[v~5¨?¡x]tv~¤£{:wK7u3 3{z":u_~Rw:x]uw]s && 1v¨ ||
1|65sn 3}:w1'x]~5~x]t:xnx]tv~5{8w~5xu_~Cw1v¨{s~C11}:x]~5¨¶vw]s.x5¥
uwK~5uI+~Rw"¡´{|x]tv~711}v~±u3
x]tv~Lz5u3_u3sK{8x]~n~Rµvw]~5sKsK{|u3{s/1|wK~"1¨G¨v~C¶v~5¨%£Gx]tv~1|}~Lu3x]tv~L~5xu_~Cw]1v¨%x]tv~5%x]tv~
w]{ 3t'xu_~Cw:¨{s < 0+o5M$'&!$'K D :x61| ¥ ¾ tv{s~R1|}[Ix]{u3LsKztv~5~{svuI7:s ,C03UoB5-l5B5![- 5M$'&!$' -`0 < ¥
©uUz"1{|x/t:v_~5Ox]t:xx]tv~L¶111}v~{|s:|w]~"1¨¢¨v~Cx]~Rw]{v~5¨¢£¢x]tv~|~5xnu~Cw1v¨
u3v|v ® }vv_u3s.~6x]t:xr{n1 && u~Cw:x]uwx]tv~6~5xru_~Cw]1v¨~C11}:x]~5s=x]u T:$'&),1 É x]tv~5u
L:xKx]~Rw
t:xxKt~w]{ 3t'xu_~Cw:¨ 3{|+~5s5¡xKt~w]~CsK}v|x{1|65s²£_~ TI$'&8,1 ¥©~CzC~¡x]tv~Cw]~o{svuv~5~5¨x]u
~C11}:x]~/x]tv~w]{| 3tx
u_~Cw1v¨¢:xq1Z¥ ¾ tv~n11u3 3u3}vssK{|x]}:x]{|u3^uzCz5}w]s¤{²{|G1 || u_~CwIx]uw
x]tv~o~5x´u_~Cw1v¨±~R1|}[Ix]~5sx]u "! ¥
¦x¤¶vw]s.xsK{| 3tx{|xquus¤1sq{sKtvuwKxz5{8w]z5}v{|x¤~R1|}[Ix]{u3G{s
~Cw]~5|^7L:x.x]~Cw
u36~R¹z5{~CzR+¥
À}x
xKt~Rw]~{|s
:uxKt~Rw
£_~C~R¶x5¥Zxouz5z5}w]s
tv~5^¨v~"1|{v L{|x]t4~Rµvw]~5s.sK{u3vsoxKt[IxqIw]~¨v~C¶v~5¨
ªuw´z5~CwKx:{[:w:~Cx]~Cw]su3v|+¥@u3vsK{¨v~Cw6ªuw~dµv1~x]tv~o¨v{|{s.{u3Lu_~Cw:xK{u3xKt[Ix´{|s6¨v~C¶v~5¨
ªuw/vu3 5~Cw]un¨{8{sKuw6u3v|+¥Ð}v~oxKunsKtvuwKx´z5{|w]zC}{8x´~R1|}[Ix]{u3?¡~oz"17´w]{|x]~
x != 0 && z / x > y
1v¨f£_~¤sK}w]~¤xKt[Ixx]tv{s~dµvw]~5sKs.{u34{|s1|65s:{¨?¥ =x]tv~qwK{ 3txu_~Cw1v¨f61s~R1|}[Ix]~5¨Fªuw
x==0 ¡ 6x]tv~5x]tv~ow]~CsK}v|x´u3}v¨£_~o}v¨v~C¶v~5¨?¥
2.3.4 Details
¾ tv~ ´Ïo»Eª}vvzCx]{u3¢{s:sKufw]~5¯}v~5x]8¢z"1~C¨ $ < -ZM$'&Q < BC 1v¨¢¨v~5vux]~5¨¢£
¥
¾ t~·6¦·ÐEª}vvzCx]{u3%{s1|sKu±vuU%1s $'&)K5 < $'K D < -`$'& uw 54,5 50 > ¥ ¾ tv~ª:xK=
x]~Rw
1~n{|s¤1x]~Rwx]tv~¦~Cw]{|z"1aL:xKt~CL:x]{z5{1A©~5wK
¥ ® tv~CÈ~CwLºKË"Ì3Ì Ã Ë Ñ'¼tuwKuI+~5¨
x]t:x´1?ux]tv~Cw´u3 3{z51u_~Cw]:x]{u3vsz"17£~
~Rµvw]~5sKsK~C¨A{|x]~CwKs6u3=·´¦·Ðq¥
Naming.
.030 #"&
%
0 + 0(*
' 0
# & (
) x
0
+
~^t5+~4sK~C~5e{ ® ~CzCx]{u3 ¥ ¥½ÌGx]t:x{xK~5 3~Cw]sz"1N£~Aw]~RwK~5sK~5'x]~5¨e{
£{:wK%ªuw]L:x5¡rx]t:x{s5¡1sFsK~5¯}v~5vz5~±u3£{|x]s/~"1ztu3tv{zt{s/~5{|x]tv~Cw 0 uw 1 ¥Àuu3~"1
ª}vvzCx]{u3vsoz"1a:x]}w:|±£_~/~Rµx]~5v¨v~5¨ax]u7{|x]~5 w]1=x³_~5so£4:v|{v x]tv~5£{|x{sK~x]ux]tv~
£{:wKw]~RwK~5sK~5'x:x]{u3vs5¥
Bitwise operators.
Pb
0 < ,C- D 5%$ < 0 <_< p $' -lMa- < K p 5
$ <XD (0- < K p 5U,
$ <XD
Definition 3 7
b
x =
ai 2 i
i=0
P
S?T:03n(6-.B"
T103$'&Z& 9
y = bi=0 bi 2i
ai , bi Å {0, 1}
0 i b
: 03$! < $+"* P 00+&QR$ < TC! < B" -.0 <
#
BC03"55,`H_0 <XD
f
:
{0,
1}
→
{0,
1}
bitwise
operator
ϕ
f
P
- <p K0
-Z, D < D $',
9
f
ϕ (x) = b f(ai )2i
: 03O$N\5- < $+"* P 00+&QR$ f < TR! < B" -`i=0
<0
#
BR03"5
g : {0, 1}2 → {0, 1}
bitwise operator ϕg
Pb
,`H_0 <XD - <p K0
- , D < D $',
9i
g
ϕg (x, y) = i=0 g(ai , bi)2
Í uw
{|}vs.xKwIx]{u3?¡vsK}u3sK~¤x]t:x~t5+~:4}vvsK{ 3v~5¨F{'x]~5 w1x³_~¤{8x]tAÑ1y £{|xw]~RwK~Ry
sK~5'x:x]{|u3m¥ ¾ t:x¤{|s5¡ 0000 w]~Cvw]~5sK~Cx]s 0 ¡ 0001 wK~Cvw]~5sK~5'x]s 1 ¡=1v¨GsKufu3?¡}v¢x]u 1111 t{|zdt
w]~Cvw]~CsK~5xKs 15 ¥
¾ tv~5±+u3}7z"1±ztv~5z]xKt[Ix
ϕ (4, 13) = 13 ¡ ϕ (13, 9) = 6 ¡v1v¨ ϕ (2) = 13 ¥
® ~C+~Cw:q£{|x{sK~Fu_~Rw:x]uw]s7:w] ~4¨~R¶[v~5¨eªuw7x]tv~^
{'x]~5 w1x~5s±{b6o¥ ¾ t~Rw]~a{s
£{|x{s.~
¦·´Ð & ¡J/£{|x{|sK~Ï» | ¡_1v¨F£{|x{sK~ Ï» ^ ¡J1s~51s/£[{8x³{sK~¤·Ï ¾ ~ x]t:x
{s
}s.}[:|fw]~5ª~RwKw]~5¨¢x]uf1s BC032/Hm&c524 < ¥¦s
x]tv~n:w]{|x]tv~CxK{zu_~CwIx]uw]s5¡mx]tv~£{:wKA£{|x{sK~
u_~Cw]:x]uw]sº ~dµz5~Cvx@ªuw ~ ¼=t5+~´zCuwKw]~5s.u3¨v{v o1sKs.{ 3v~5x=u~Cw:x]uw5¥ ¾ tv~vw]~5z5~C¨~CzC~5s:¨
1sKs.uz5{ªIx]{|{8x³u3x]tv~5sK~
u_~CwIx]uw]s6:w]~
{s.x]~C¨7{ ¾ :£~ ¥
Description
£{|x{|sK~z5u3~5~5'x
£{|x{|sK~1v¨
£{|x{|sK~µuw
£{|x{|sK~uw
1v¨f:sKsK{ 3v~5'x
µuw1s.sK{ 3v~5x
uw1sKsK{| 3~Cx
Table 3:
Operator
~
&
^
|
&=
^=
|=
Arity
Ë
Prec. Assoc.
Ë
Ì
Ñ
Ñ
Ñ
w]{ 3t'x
~5x
~5x
~5x
w]{ 3t'x
w]{ 3t'x
w]{ 3t'x
CCBC D < BCf$ <XD $',5,10B5-³$' -ZM-Z *G0]T\"- (- ,:05H_CC$'K03U,:9
· ux]~nxKt[Ix¤x]tv~ª}vzRx]{u31{|xAu3²x]tv~5sK~Lu_~Rw:x]uw]s
{s{~5~Cx:xK{u3F¨~R¶[v~5¨?¡=sK{|zC~nx]tv~
´
£{|x{s.~wK~Cvw]~5sK~5'x:x]{|u3s
u3²{'x]~5 w1=x~11}v~5s¤Iw]~nvux
s._~5z5{8¶[~C¨^£4x]tv~6
s.x:¨:wK¨m¥
~At5+~^u3v| ¨v{sKz5}vsKs.~5¨Nx]tv~Au3s.xLw]~5¯}~Cxaº 1v¨Nu3s.x{|+~C|v¼nsK}vztNw]~RwK~5sK~5'x:x]{u3vs{
® ~5zCxK{u3 ¥ ¥ Ì¥Ó@u3}4sKtvu3}v¨4x]tv~CwK~5ªuw]~ 0 < &* }vsK~xKt~CsK~u~Cw:x]uwKsot~C^+u3} >1< 03( x]tv~wK~Cy
w]~5s.~5xIx]{u3?¥ Ê +~5fx]tv~5?¡[~Rµvw]~5s.sK{u3vs{'+u3|{v /x]tv~q£{|x{sK~ou_~Cw]:x]uw]s:w]~¤{~C~5xIx]{u3
¨v~C¶v~5¨?¥
¾ tv{s{|su3s.xu£{u3}vs{|x]tfx]tv~¤£{|x{sK~
z5u3~5~5'x"°~C+~54{=~1sKsK}v~qxKt~s`x1v¨:w]¨
£{:wKGw]~RwK~5sK~5'x:x]{u3Ou3 ® ~5zCxK{u3 ¥ ¥½Ì¡x]tv~11}v~u3´x]tv~~Rµvw]~5s.sK{u3 ~0 ¨v~C_~C¨vs/u3x]tv~
}v£_~Cw b u3£{|x]s{^x]tv~w]~Cvw]~5s.~5xIx]{u3?¥ ¾ tv{s:}v~x]tv~Cw]~Cªuw]~nzt1v 3~5stv~5^+u3}Gs.{|x]zt
w]u3 32y £{|x6L1ztv{v~x]u 64y £{|x6L1ztv{v~¥
´Xb
@X66
2.3.5 Goals
¦xx]tv{s_u3{'x"¡+u3}±s.tu3}v¨^¥5¥5¥
Dispositional.
ËU¼vuU x]tv~q£[1sK{z¤xK~Cw]{vu3u3 :wKu3}v¨4Àuu3|~"1Fª}vzRx]{u3vs1v¨A}v¨v~Cw]s`x1v¨fx]tv~z5u3vz5~Cvx
u3Xz5u3~Cx]~C~CsKs É
3¼vuU
bool É
x]tv~x_~ bool ¡?{|x]s11}v~w1v 3~¡m1v¨Fx]tv~/zCu3+~Cw]s.{u3vsq1v¨4u_~Cw:xK{u3vs{+u38{v ¼}v¨v~CwKs.x1v¨fx]tv~¤~C11}:x]{|u3±u3=~Rµvw]~CsKsK{u3vs{'+u3|{v u3 3{z"1m1v¨fw]~5:x]{u31?u_~Cw]:x]uw]s5¡
{7[:wKx]{|z5}vª:wx]tv~oz5u3vz5~Cvxu3§sKtvuwKxzC{|w]z5}v{|x~C11}:xK{u3?¥
7[:wKx]{|z5}vª:w"¡'+u3}fsKtvu3}|¨£_~
:£~x]u7¥C¥"¥
Operational.
ºÂ/ËU¼vw]uU+~quw´¨v{s.vw]uU+~o£[1s.{zs.x:x]~C~5x]s6:£u3}vxÀuu3|~"1ª}vzCxK{u3vs É
ºÂ 3¼vw]uU+~
tv~Cx]tv~Cw6uwvux/ 3{8+~5±sK~Cx´u3§£{:wKÀuu3~"1ª}vzRx]{u3vs{s´zCu3[|~Cx]~ É
ºÂ ¼L~R1|}[Ix]~6o 3{|+~C~Rµvw]~CsKsK{u3{|+u3|{v Iw]{|x]tv~Cx]{|z¡1u3 3{|z"1 ¡3:¨w]~5ª:xK{u31u_~Cw]:x]uw]s É
ºÂÑ'¼wK~"1¨ 1v¨}vv¨~Rw]s.x1v¨ A 3{|+~5sK{~vw]u3 w: º sK~C~7£_~5uU¼d¡{'+u3|{v Au£ ~5zRx]su3
:wK{|x]tv~Cx]{z´x³_~/º {vz5}v¨v{v bool ¼1v¨f:wK{|x]tv~Cx]{z1¡u3 3{|z"1 ¡1v¨w]~5:x]{u31u~Cw:x]uwKs5¥
¾ t~/x]~Cw] ,C-Z2/Hm&cH?50 p C$+2 w]~Cª~Cw]s¤x]u7vw]u3 w1x]t:x
z5u3vsK{s.xKsqu3L1{^ª}vvzCx]{|u3^tv{zt
{ 7xK}vwK±z5u3vsK{s.xKsu3=sK~5¯}~CzC~¤u3X¨v~5z5ªIw:x]{u371v¨±~RµwK~5sKsK{u3fs`x:x]~5~Cx]s5¥·:xK}vw]1|+¡u3v|
x]tv~oª}v¨1~5'x1x~5s:¨7u_~Cw:xK{u3vs6¨v{s.z5}vsKsK~5¨±{|7x]tv~ovw]~Cz5~5¨v{v nsK~CzCx]{u3vs´:w]~o}s.~5¨?¥
2.3.6 Exercises
: 03
Exercise 18
n űÆ
S603(
2A$ < * D - 55 < P 00+&QR$ < TC! < B" -.0 < ,
C03M703 D - ,`H?503Mn#J$'§T:03$'&l&
Exercise 19
f:Ä
→Ä
n
x, y, z ÅfÄ
dk+- ,5 ºÂ/ËU¼
ºÂ/ËU¼
3¼ (x y) z = x (y z) ¥
º { ¥ ~1¥|¡ ´
Ïo»e{s´1sKs.uz5{ªIx]{|+~U¼
Zº { ¥ ~¥8¡ (¦·´Ð , Ïo» ) {|s´¨v{s.x.w]{|£}x]{|+~U¼
£J¼ (x ∧ y) ∨ z = (x ∨ z) ∧ (y ∨ z) ¥
z"¼ (x ∨ y) ∧ z = (x ∧ z) ∨ (y ∧ z) ¥
ºZ{ ¥ ~¥8¡ ( Ï» , ¦·´Ð ) {|s´¨v{s.x.w]{|£}x]{|+~U¼
¨[¼ (x ↑ y) ↑ z = x ↑ (y ↑ z) ¥
º {Z¥ ~¥8¡v·´¦·Ð¸{s61sKsKuz5{ª:xK{|+~U¼
: 03
S
K5"27,0]T#
S x1 , . . . , xn 9 n Å
xi 1 i n
Exercise 20
Æ
S p -lM^$GMC\C$'& D 5,1B5"-8Hm -`0 <
0]T
x 1 x2 . . . -<
ºÂ/ËU¼
xn
03( #J$'7#T10+&l&c03(- <p ,15#,Y0]TTR! < B" -`0 < , $+5YBC032/Hm&c5K±T103O#,:"^0]T
\"- < $+"* P 00+&cd$ < TC! < B" -.0 < ,:9
ºÂ 3¼
Exercise 21
3¼ {¦·Ð , ·Ï ¾ }
£J¼ { Ïo» , ·Ï ¾ }
z"¼ { ·´¦·Ð }
¨[¼ { ·Ïo» } ¡tv~Cw]~·Ïo» := ·Ï ¾
~"¼ {Ï» , ¦ ·Ð }
Ï»
¥
Óru3}¤L5o}s.~@x]tv~Q:zCx§x]t:x {¦·Ð , Ï» , ·Ï ¾ } {|s§6z5u3~Cx]~sK~Cx§u3£{:wKqÀuu3|~"1¤ª}vvzCx]{u3vs5¥
!HH_0+,: S S±$ <XD
$+5$'&l&M$+"-`$\U&Q",0]T4 *IH
9 : - <XD M$'&!§",/T103 S
Exercise 22 a b
c
int
S$ <XD
T103F(6-.B5j#Gdk"H?5",5,C-`0 < ,
$ <XD
*'-.5& D D - C5 < a b
a < b < c
a < b && b < c
5",R!&)#,:9 c
ºÂ ¼
$+C < #",C- #T:0+&Z&Q03(- <p dkUH?5",C,C-.0 < ,$vBCBC03 D - <p K0±05H_CC$'K03H?5RBC D < BC",
$ <XD $',C,10B5-³$' Z- M-Z -.",:9
º Â ¼
Exercise 23
3¼ x != 3 < 2 || y && -3 <= 4 - 2 * 3
£J¼ z > 1 && ! x != 2 - 2 == 1 && y
z"¼ 3 * z > z || 1 / x != 0 && 3 + 4 >= 7
M$'&)!m$'K#
dkUH?5",C,C-.0 < , p -ZM < - < kv5 5B5-Z,1
Exercise 24 4
4
X
<
D
< D
S S$
$+5$'&Z&0]T/ *UH_
(- #
S
S$ X
/,5K.H
x y
z
int
x==0 y==1
z==2
J$'/Bd$ < *03! ,:$+*$\503!J
#A03!|H?!J/0]TL#T:0+&Z&Q03(6- <p
D .H_ <XD - <p 0 < #n- < H?!o$ <XD dkUHm&ª$+- < *[03![n5d$',10 < - <p 9
Exercise 25
K5"- n-Z
9
d\5* `,5K.H?S@$',C,C!J2- <p # J$'
ºÂ ¼
H?50 p C$+2
7
J$+C$vB
ºÂÑ'¼
# include < iostream >
int main ()
{
int a ;
std :: cin > > a ;
std :: cout < < ( a ++ < 3) < < " .\ n" ;
bool b = a * 3 > a + 4 && !( a >= 5);
std :: cout < < (! b || ++ a > 4) < < " .\ n";
return 0;
}
: - <XD #&c0 p -.Bd$'&?H$+C < #",1",- < &- < ", a$ <XD 0]T#T:0+&Z&Q03(6- <p H?50 p C$+249
<
J$'^BR$
*03! ,:$+* $\503!7# 03!|H?!J40]TO#7T10+&l&c03(- <p H?50 p C $+2
J$+C$vB5K5"- - 7
D .H_ <XD - <p 0 < #n- < H?!o$ <XD dkUHm&ª$+- < *03!J/5d$',10 < - <p 9
ºÂÑ'¼
Exercise 26
# include < iostream >
int main ()
{
´Xb
@X66
Ì
unsigned int a;
std :: cin > > a;
unsigned int b = a ;
b /= 2 + b / 2;
std :: cout < < b < < "\n" ;
bool c = a < 1 || b != 0 && 2 * a / ( a - 1) > 2;
std :: cout < < c < < "\n" ;
return 0;
}
2.3.7 Challenges
»6~C+~Cw]s.~ u3{|sKt·6ux:x]{u3
-Z,^$±T:03"24$'L0]Tf(6"-Z - <p dkUH?55,5,C-.0 < ,
(- #03!J$ < */H$+5 < #5,1",:9
\5RBR$+2^H_05H?!J&Q$+- < #&ª$'K < - < 5KC < ,C-ªk -.5,/(6 < #
BC032/H$ < * n5(
&Q"# $vB > $+ D ,5.$+UK D K0!J,1- $',¤- < H?!?T1032A$'mT:03LdkUH?5",C,C-.0 < ,L0 < #C-Z
D ", > K05HN$ <XD J$ <XD 5& D BR$'&QB5!&ª$'K03U,:9
]<
Sn( U,C(6"-ZK¢#05H_5R$ <XD ,CSf$ <XD # < #05H_5C$'K03 #J$' ,4(6J$'L#
X
<
D ,6T:03 9 : 03dkv$+2/Hm&c5S6#dkUH?5",C,C-.0 <
5
,
.
$
»´~R+~Cw]sK~
Exercise 27
¦·´Ð ( Ïo» (0, ·Ï ¾ (¦·´Ð (0, 1))), 1)
RB $ < \5n("-Z#K < &)- > #- ,- <
0 0 1 ¦·Ð
· Ï ¾
Ï» 1 ¦·´Ð .
&ª$'#K5,1 "! < BC40]T±05H_5R$ <XD ,f$ <XD 05H_CC$'K03U, D < ",±$4,`H_CBC- BF5M$'&!$' -`0 < ,1
"! < BCL0]T¤#kUH?5",5,R-.0 < S,1R CB" -`0 < 9 9 [9LX0fCM$'&)!m$'K$ < dkUH?55,5,C-.0 < - <
S@(
p 0F#503! p G#,1 "!§ < BCTCC032 &Q T5K0f"- p (6 < 5M5( <XD $ < 05H_5C$ <XD S( D 0 < D 0$ < *#- <p S\"!¤(6 < ( <XD $ < 05H5C$'K03 0]TF$+"- *
S¤(a5M$'&)!m$'K±- T:03f#
n
05H_5R$ <XD , D -Z5RB"#&*GK0F#&Q T5¤0]T- $ <XD 5`Hm&Q$vBRL#- < M0+&M D
,1 "!§ < BRF"&cC2^ < #n,
1
\"*#55,C!&)´0]T#5M$'&)!m$' -.0 < 9L@ < ( p 0K0n# < dk',1 "!§n < +BRn
"&Q524 < .9 ]< Bd$',10]T
03!Jdkv$+2/Hm&cL$\503MCS#-Z,H?501BCC D ,$',T10+&Z&Q03(6, B5!J"C < #&)*LH?50BR",5,1 D 05H_5C$'K03n- < \C0+& D
¾
0 0
AND} ·Ï
| 1 {z
0
Ï»
0 0
| NOT
{z }
1
¦·Ð
0
| 1{zOR} 1
1
1
AND}
| 1 {z
1
1
Ïo» 1 ¦·Ð
1 ¦·´Ð
3
X0±,:C#J$'´#- ,- ,- <XD R D $7($+*G0]TL5M$'&)!m$' - <p #03"- p - < $'&²dkUH?C",5,C-`0 <
¦·´Ð ( Ïo» (0, ·Ï ¾ (¦·´Ð (0, 1))), 1),
*03!ABd$ < T103
dkv$+2Hm&Q2A$ > $n\50+#K032 ³!H D R$+(6- <p 0]T$ < dkUH?C",5,C-`0 < 5C CB" -`0 < 9 9
#J$'qBR03"5",`H_0 <XD ,K0f#5M$'&!$' -.0 < ,1 "! < BCn- <
9¤VX03!a(-Z&Z& <XD #J$'´#- ,/ 5C-Z,
$'&),107M$'&- D T103n#703"- p - < $'&²dk"H?5",5,C-`0 < 9
n55%BC0324",F#%$vB5 !$'&
k55B5-Z,119
"-ZKH?50 p C$+2±,
S
SL$ <XD
#J$'
and.C or.C
not.C
5RBC5-lM7$',- < H?!J$7,1 5!§ < BR
0]T\500+&QR$ < M$'&)!",- <
$'&l&05H_5C$ <XD ,/K0#n&Q T5o0]T
s
{0, 1}
#F05H_5C$'K03 9f03!J|H?!o,503!& D \5#,1 "! < BC #J$'( p "/\"*^5.Hm&ª$vB5- <p #
&ª$',5
05H_5C$ <XD ,- <
(-Z#G#5",C!J&8¤0]T5M$'&!$' - <p #s55,`H_CB5 -ZMf05H_CC$'K03T103#52A9
n
s
]< Bd$',1^0]T
$ <XD
So(7!J,1
S$ <XD T103
9 : 03adkv$+2/Hm&cCSn0 <
and.C
or.C
n=2
not.C n = 1
<- H?!J
p
D
<
SH?50 C$+2
,C03!& 03!J|H?!r#o,1 "! BC
S§(´-Z&c
,503!J& D *'-.5& D ,
(1, 1, 0)
and
(1, 0)
not
9
(1, 1, 1)
]< $ DD - -.0 < Sq(6"-ZKH?50 p C$+27,
$ <XD
#J$'03!|H?!#F,: "! < BC 0\
s
: - < $'&l&)*'S("- KL$/H?C0 p C$+2
03
K0#zero.C
- < H?! 9 one.C
.$+- < D \"*4$"HH_ <XD - <p $
(- #
0
1
s
eval.C
< 07- < H?! #J$'q03!|H?!J#,#752/Hm *F,1 "! < BC:9
p 01$'&0]T¤$'&Z&#-Z,- ,K0CM$'&)!m$'K/\C00+&QR$ < TR! < B" -`0 < ,- <
\"*,C-Z2/Hm&)*±Bd$'&Z&- <p #
S´(655L#703!|H?!
BC03"C",`H_0 <XD - <p ,1 "! < BCF0]TH?50 p R$+2±, H?CCBC D D \"*%$aBR$'&Z&rK0
eval
0]TG0 < H?C0 p C$+2 - ,F!,1 D $',F- < H?!J´T:03^# < dk70 < A- < #a,1 "!§ < BR19 ]< ;=< -QkN$ <XD
- < !vkf#- ,BR$ < 5&c p $ < #&)*%\5 D 0 < M-`$4$ {|_~ 9 : 03±dkv$+2/Hm&cCSK0aCM$'&)!m$'K#±kv$+2Hm&Q
dkUH?C",5,C-`0 < TC5032 $\C03Mn- <
S(,R-Z2Hm&*F *UH_#BC03272A$ <XD
./ eval |./ zero |./ zero |./ one |./ and |./ not |./ or |./ one |./ and
-Z,Bd$'&Z&),$'&l&r&- ,CK D H?50 p C$+2±,- < ![ < S(6557$f,1.H$+C$' - <p
RB"#J$'q#403!|H?!0]TL#H?C0 p C$+2 K0a#&cZT5n0]T-Z
- ,!J,1 D
H?-8H D - < K
0 #oH?50 p R$+2 K0f#"- p o0]T- .9
0 < ,: "! < #&)*'S#(60+&Qo$T:035524 < -.0 < D BC03272A$ <XD ,503!J& D
D $+ 7D 03!|H?! S#/5",R!&)
0]T#7CM$'&)!m$' -.0 < 9 8
&8,:0±K",56*[03![oH?C0 p
,1 "! < BC5,CS´- < H$+U -`B5!&ª$+# 0\"M-`03!, 0 < ",L0]T#´T103"2
H?-8H,C*'24\C0+& J$',n#
$',#- < H?!J|@T103 -Z,
,C-Z2/Hm&)*q(6"-ZK K0¤,5.$ <
C$+27,(- #4,10312^0+#5
./ eval |./ zero |./ one |./ or
#- ,L0 < ,503!& D 03!J|H?! 1 K0±2A$ > ,C!J5n#J$'#5*F(03 > $',dk"H_CB"K D 9
- , < 0+ < CBR",5,:$+"* #J$'7*03!JAH?50 p C$+27,j$vBCBR.Hmf,1"!§ < BR", s 0]T
Hint:
&Q <p #A$',- < H?!.98
H?!JKH0+,1",:9
2A$1k'-Z2!J2
&Q <p #A0]T
ST:03dk$+2Hm&Q5S=- ,,C!:h
+$ \5- C$+"*
B5-` < T:03$'&Z&'H?R$vB" -.Bd$'&
´Xb
@X66
© Copyright 2026 Paperzz