+ Assuming $w = 4$, we can assign a numeric value to each possible hexadecimal digit, assuming either an unsigned or a two's-complement interpretation. Fill in the following table according to these interpretations by writing out the nonzero powers of 2 in the summations shown in the equations below:
+ We have a machine of 16-bits. This 16-bits machine can be used to represent $2^16$ or $65,536$ different values. We have another machine of 32-bits. This 32-bits machine can be used to represent $2^32$ or $4,294,967,296$ different numbers. So, if you wanted to store a value of $100,000$ then which machine should you choose? The 16-bits machine or 32-bits machine? Mention and explain your choice. (It's Ok to use a calculator for this problem)
#solve[
Generally, we would want to choose the 32-bit system to store a value of $100,000$. The 16-bit system has a max value it can store of $65,535$ which is $< 100,000$ meaning we can't store the $100,000$ value directly in a single word. Whereas, the 32-bit system can store a max value of $4,294,967,295$ which is $>= 100,000$, meaning the value will fit within a single word.
#note[Now _technically_ we can store $100,000$ on the 16-bit system by spreading the value across multiple words and creating a *lot* of procedures to handle it. This is how naive Big Integer/Big Number libraries work in the wild (notice I mentioned _naive_, there are much, _*much*_, better methods of doing this).]
Again though, ignoring the aforementioned technicality, we'd want to use the 32-bit system to store the value of $100,000$.
]
#v(1em)
+ We have an 8-bits machine. But we don't know if the machine follows unsigned representation or the two's complement/signed representation. A hexadecimal value is given as `0xF1`. Find out the unsigned representation of this hexadecimal value in decimal. Find out the two's complement/signed representation of this hexadecimal value in decimal.