Introduction ttoo PPrrooggrraammmmiinngg 
LLeeccttuurree 2211
TTooddaayy’’ss LLeeccttuurree 
 BBiitt mmaanniippuullaattiioonn 
 BBiitt ooppeerraattoorrss
LLooggiiccaall OOppeerraattoorrss 
AANNDD &&&& 
OORR 
||||
Bit manipulation ooppeerraattoorrss 
&& BBiittwwiissee AANNDD OOppeerraattoorr 
|| BBiittwwiissee OORR OOppeerraattoorr 
^^ BBiittwwiissee EExxcclluussiivvee OORR OOppeerraattoorr 
~~ NNOOTT OOppeerraattoorr 
<<<< LLeefftt SShhiifftt OOppeerraattoorr 
>>>> RRiigghhtt SShhiifftt OOppeerraattoorr
Bitwise AANNDD OOppeerraattoorr 
TTrruutthh ttaabbllee ffoorr AANNDD ooppeerraattiioonn 
BBiitt11 BBiitt22 BBiitt11 && BBiitt22 
11 11 11 
11 00 00 
00 11 00 
00 00 00
Bitwise AND OOppeerraattoorr EExxaammppllee 
…………………… 2233 2222 2211 2200 
12 = 1 1 0 0 
& 
8 = 1 0 0 0 
______________ 
_ 1 0 0 0 
Hence x = 12 & 8 = 8
EExxaammppllee 
##iinncclluuddee <<iioossttrreeaamm..hh>> 
mmaaiinn (( )) 
{{ 
iinntt nnuummbbeerr == 1122 ;; 
iiff (( nnuummbbeerr && 00xx88 )) 
ccoouutt <<<< ""BBiitt nnuummbbeerr ffoouurr iiss sseett"" <<<< eennddll ;; 
eellssee 
ccoouutt <<<< ""BBiitt nnuummbbeerr ffoouurr iiss nnoott sseett"" <<<< eennddll ;; 
}}
Bitwise OORR OOppeerraattoorr 
TTrruutthh ttaabbllee ffoorr OORR ooppeerraattiioonn 
AA BB AA||BB 
11 11 11 
11 00 11 
00 11 11 
00 00 00
Bitwise OORR OOppeerraattoorr 
EExxaammppllee 11 
XX == 1122 || 88 
1 1 0 0 
| 
1 0 0 0 
_____________ 
1 1 0 0 
Hence the result x = 12
Bitwise OORR OOppeerraattoorr 
EExxaammppllee 22 
xx == 88 || 11 
1 0 0 0 
| 
0 0 0 1 
_____________ 
1 0 0 1 
Hence the result x = 9
Bitwise EExxcclluussiivvee OORR 
OOppeerraattoorr 
TTrruutthh ttaabbllee ffoorr EExxcclluussiivvee OORR ooppeerraattiioonn 
AA BB AA^^BB 
11 11 00 
11 00 11 
00 11 11 
00 00 00
Example: EExxcclluussiivvee OORR 
OOppeerraattoorr 
XX == 88 ^^ 11 
1 0 0 0 
0 0 ^ 0 1 _____________ 
Result x = 9 1 0 0 1 
0 0 ^ 0 1 
_____________ 
X = 9 ^ 1 
Result x = 8 1 0 0 0
NNOOTT OOppeerraattoorr 
TTrruutthh ttaabbllee ffoorr NNOOTT ooppeerraattoorr 
AA ~~AA 
00 11 
11 00
NNOOTT OOppeerraattoorr 
xx == 88 
~~ (( 11000000 )) == 00111111 
== 77
BBiitt 
FFllaaggss
RReeaadd WWrriittee 
AAnndd EExxeeccuuttee
Exclusive OORR OOppeerraattoorr 
EExxaammppllee 
uunnssiiggnneedd iinntt aa ,, bb ,, cc ;; 
aa == 111122 ;; 
bb == 3322 ;; 
cc == aa ^^ bb ;; 
cc == (( aa ^^ bb )) ^^ bb ;; tthhee rreessuulltt iiss aa 
cc == (( aa ^^ bb )) ^^ aa ;; tthhee rreessuulltt iiss bb
RRaaiidd 
RReedduunnddaanntt AArrrraayy ooff 
IInneexxppeennssiivvee DDeevviicceess
HHoott PPlluugg
EExxaammppllee 
SSwwaappppiinngg ttwwoo iinntteeggeerrss 
wwiitthhoouutt aa tteemmppoorraarryy ssttoorraaggee 
uunnssiiggnneedd iinntt aa == 1122 ;; 
uunnssiiggnneedd iinntt bb == 88 ;; 
aa == aa ^^ bb ;; 
bb == bb ^^ aa ;; 
aa == aa ^^ bb ;;
UUnnssiiggnneedd iinntteeggeerr 
uunnssiiggnneedd iinntt ii ,, jj ,, kk ;;
LLeefftt SShhiifftt 
AA nnuummbbeerr 11 
SShhiifftt lleefftt
RRiigghhtt SShhiifftt 
AA nnuummbbeerr 1100 
RRiigghhtt sshhiifftt 
1 0 
0 1
Left && RRiigghhtt SShhiifftt 
OOppeerraattoorr 
 <<<< sshhiifftt lleefftt 
 >>>> sshhiifftt rriigghhtt
Left && RRiigghhtt SShhiifftt 
OOppeerraattoorr 
UUnnssiiggnneedd iinntt ii == 44 ;; 
ii <<<< 11 ;; sshhiifftt lleefftt 
ii >>>> 11 ;; sshhiifftt rriigghhtt
Left shift 
11 00 11 
11 00 00 00 11 
Right shift 
11 00 11 11 00 00 00 11

CS201- Introduction to Programming- Lecture 21