Integer division always rounds it’s result by rounding towards 0. So if we do 5 the result is 2.5 which is rounded to 2. This is the same result that we get if we shift 0101 to the right one position, i.e., 0010. If we do −5, however, the 3 result is −2.5 which should round toward 0, i.e., to −2. The 2’s complement version of −5 however is 1011. If we shift it right we get 1101 or −3 not −2. To fix this, we can add one before we shift, i.e., −5 + 1 = −4 or 1100. When we shift this right we get 1110 or −2, the correct answer. How can we do this without an if statement to test whether the number is positive or negative? If a 2’s complement number is positive, the sign bit is 0. If the 2’s complement number is negative it’s sign bit is 1. So we shift the sign bit all the way to bit position 0 (63 bits if we have a 64 bit number). If the number is negative, it results in the value ”1”; if the number if positive it results in the value ”0”. We then add this to the number that we are to divide, i.e., we add ”1” to a negative number and ”0” to a positive number. Then when we shift right, the number will be rounded in the correct way.
The IBM 360/370 families were channel-oriented systems. For example, a mid-range IBM 360 model 50 supported up to 768 "I/O units" - disk, drum or tape drives - and up to 1,984 slow-speed devices - terminals, card readers and printers. While I doubt anyone went to these maximums, the point is that these were I/O, not CPU-centric, machines. Likewise with the new Mac Pro: it is a CPU with a lot of fast Thunderbolt I/O for external expandability.
In-class 2 and 3 are due on the day they are assigned (during the last week)
Lab 10 is due on Thursday, 4 May.
Pract 3 is Due the last day of classes.
Exam 3 is at 7:30am on Tuesday, 9 May in Williams 303
Pract 2 is due on Wednesday, 26 Apr.
Exam 2 is on Thursday, 13 April, in class.
Prob Set 6 is due on Monday, 10 April.
Pract 1
is due on Friday, 10 March Friday, 24 March at 5pm.
Lab 6 is due at the beginning of lab on Thursday, 23 Mar
Lab 5
is due at the beginning of lab on Thursday, 2 Mar Monday, 6 Mar
Exam 1 is on Thursday, 2 March in class.
Lab 4 is due at the beginning of lab on Thursday, 23 Feb
Problem Set 4 is due on Monday, 20 Feb at the beginning of class. Do not do the sections on 2's complement or shifting!
Lab 3 is due at the beginning of lab on Thursday, 16 Feb
Problem Set 3 is due on Monday, 13 Feb at the beginning of class.
Lab 2 is due at the beginning of lab on Thursday, 9 Feb
Problem Set 2 is due on Monday, 6 Feb at the beginning of class.
Lab 1 is due at the beginning of lab on Thursday, 2 Feb
Quiz 1 on Monday on Unix commands. You must know all the commands from the UNIX Tutorial for Beginners, Tutorial One, Tutorial Two, and Tutorial Five. See The Unix Tutorial
Problem Set 1 is due on Monday, 31 Jan at the beginning of class.