Finished the lab

This commit is contained in:
tsmith372
2026-03-17 18:49:50 -04:00
parent 34ddc1c612
commit ee15033d14

View File

@@ -52,9 +52,13 @@ talk with others.
9. If `a` represents a positive integer, and `one = Bits(1, length=len(a))`, 9. If `a` represents a positive integer, and `one = Bits(1, length=len(a))`,
give an expression equivalent to `-a`, but which does not use negation. give an expression equivalent to `-a`, but which does not use negation.
(~a) + one
10. It is extremely easy to double a binary number: just shift all the bits 10. It is extremely easy to double a binary number: just shift all the bits
to the left. (`a << 1` is twice `a`.) Explain why this trick works. to the left. (`a << 1` is twice `a`.) Explain why this trick works.
shifting left is the same as multiplying by 2 becouse each shift moves every bit to a position worth twice as much
11. Consider the following: 11. Consider the following:
``` ```
>>> hundred = Bits(100, 8) >>> hundred = Bits(100, 8)
@@ -67,17 +71,27 @@ talk with others.
``` ```
Apparently 100 + 100 = -56. What's going on here? Apparently 100 + 100 = -56. What's going on here?
100 + 100 results in -56 because the sum (200) exceeds the maximum value that can be stored in 8 bits, causing an overflow and making the binary result interpreted as a negative number using twos complement.
12. What is the bit representation of negative zero? Explain your answer. 12. What is the bit representation of negative zero? Explain your answer.
negative zero has the same bit representation as zero (00000000) because flipping all bits of zero and adding one results in zero again, so there is no distinct negative zero.
13. What's the largest integer that can be represented in a single byte? 13. What's the largest integer that can be represented in a single byte?
Explain your reasoning. Explain your reasoning.
The largest integer in a single byte is 127 because, the leftmost bit is reserved for the sign, leaving 7 bits for the value, which gives a maximum of 01111111 = 127.
14. What's the smallest integer that can be represented in a single byte? 14. What's the smallest integer that can be represented in a single byte?
Explain your reasoning. Explain your reasoning.
The smallest integer in a single byte is -128 because in 8-bit, the bit pattern 10000000 represents -128, which is the lowest possible value when the leftmost bit is used as the sign.
15. What's the largest integer that can be represented in `n` bits? 15. What's the largest integer that can be represented in `n` bits?
Explain your reasoning. Explain your reasoning.
## Text questions ## Text questions
16. Look at the bits for a few different characters using the `utf8` encoding. 16. Look at the bits for a few different characters using the `utf8` encoding.
@@ -102,4 +116,6 @@ talk with others.
Make a hypothesis about how this could work. Make a hypothesis about how this could work.
The decoder looks at the first 8 bits of a byte to determine how many total bytes the character uses.