title: How does the formula x & (x - 1) works?
body: <p>From <em>Hacker's Delight: 2nd Edition</em>:</p>
  <p><a href="https://i.stack.imgur.com/pdoyB.png" rel="noreferrer"><img src="https://i.stack.imgur.com/pdoyB.png" alt="Formula to turn off the rightmost 1-bit of a word." /></a></p>
  <hr />
  <p>The formula here seems a little bit awkward here. How is some <strong>x</strong> vector is subtracted from <strong>1</strong> vector (presumbly <em>0x1111 1111</em>) when <strong>x</strong> is smaller than <strong>1</strong>? (Like: (as given in example) <em>0x0101 1000</em> - <em>0x0000 0000</em> doesn't make any sense to me) The former is a smaller number than the first one and the words aren't storing signed vectors either. Is that something related to RISC specific here or what?</p>
  <hr />
  <p>As specified in the notation section of the book. A bold letter corresponds a vector for word like <strong>x</strong> = 00000000. And a bold one differs from a light face 1. As bold <strong>1</strong> = 11111111 which is an 8 bit word.</p>
  <hr />
  <p><strong>Edit2:</strong> Special Thanks to Paul Hankin to figure out the unconventional notations used here. A bold faced one refers to 32 bit size word which is [00000001] and a light faced 1 refers to a number one as in C.</p>