
Specifically the third line up from the bottom of the page. The address of RAM[16384+r*32+c/16] is incorrect, the address should read 16384+r*32+floor(c/16).
I saw somewhere on this forum that in addressing situations like this, it is assumed that floor(c/16) is what is meant by c/16, but this assumption is confusing to those of us who didn't know that because the assumption is not stated anywhere in the preceding sections of the book. For a while, I thought the fraction was supposed to refer to a specific bit within a wider word. Why rely on an assumption like "c/16 means floor(c/16)" when there is a perfectly legitimate and simple way to just write the address without redefining the division operation?
In a similar vein, page 70 also introduces another new notation under the assumption that the reader is already familiar with it. Every RAM address on this page is followed by a number written like (0xdddd); I now understand that this is just the address written in hexadecimal following a prefix notation commonly found in programming languages. However, for a while I was extremely confused because it was never explained that this number is just a weird way to write hexadecimal; this format just suddenly appears out of nowhere. Perhaps it would be better to introduce the "0x" notation before using it, or maybe just follow the base notation established in Chapter 2 and write the numbers in the form (dddd)_sixteen.
I feel like a book that bills itself as being "completely selfcontained" which "lends itself to nonCS majors" should never use notation that has not been properly introduced in the text, no matter how common that notation is among those in computer science/engineering.
