chapter 5, bit manipulate