read the transcript!
panel 1: bitwise operations operate one bit at a time
The results can be surprising when you write them in base 10:
8 & 3 = 0
but in binary it makes more sense:
1000 & 0011 = 0000
next: a bunch of panels listing all of the operations
&: Bitwise and: the result is 1 if BOTH bits are 1
|: Bitwise or: the result is 1 if EITHER bit is a 1
^: Bitwise xor: the result is 1 if EXACTLY ONE bit is a 1
~: Bitwise not: FLIP all the bits
<<: Left shift: add 0s to the end. << n is like multiplying by 2^n
>>: Right shift: chop bits off the end. >> n is like dividing by 2^n.
panel: there are actually two right shifts
unsigned right shift: 253 >> 1 = 126
always pad on the left with a 0: 11111101 -> _0_1111110
signed right shift: -3 >> 1 = -2
if the number is negative, pad on the left with 1 instead of a 0: 11111101 -> _1_1111110
In some languages unsigned right shift is
>>>. In other languages, both right shifts are
>> and the integer’s type determines which is used.