CS 117 Assignment: Binary arithmetic

Due 8:30AM Wednesday, 2/23/05. Hand in on paper (no e-mail or HSP, please).


  1. For each of the following positive binary integers, what are the decimal (base ten) and hexadecimal (base sixteen) equivalents?

  2. Add 10110 to 1011. Show your work (in particular, show where you get carries, and where you don't). You can check your work by translating the numbers into decimal, but I want to see you do the usual gradeschool addition algorithm in base 2 instead of base ten.

  3. When you look at an integer expressed in the decimal system, it's easy to tell whether the number is divisible by 2, or 5, or 10, or 100, or 1000, or.... For example, a number is divisible by 5 if its decimal expression ends with a 5 or a 0, and a number is divisible by 100 if its decimal expression ends in two zeros.

    What sorts of divisibility are easy to see when a number is expressed in binary, and how can you see them?

  4. The number 1.398 is equal to 1 + 3/10 + 9/100 + 8/1000. If we move to binary, and use a "binary point" instead of a decimal point, what will the following numbers equal? That is, what are the base ten equivalents of the following binary numbers?

    When you multiply a decimal number by 10, you shift the decimal point to the right one place. How can you shift a binary point to the right?

  5. Rewrite the following base-ten numbers as 16-bit two's complement integers: -1, 127, -127, and 1351.

  6. What does the bit pattern 01100110 represent if you interpret it as an 8-bit two's complement integer? What if you interpret it as a character using ASCII?

  7. In Unicode, what is the numerical value of the Greek upper-case omega? (See http://www.unicode.org/.)

  8. Who proposed adding the Klingon alphabet to Unicode? What is the current status of this proposal?