   # Gsp 215 Week 1 Work

Topics: Data type, Computer arithmetic / Pages: 3 (709 words) / Published: Oct 14th, 2012
2.61 ◆◆
Write C expressions that evaluate to 1 when the following conditions are true, and to 0 when they are false. Assume x is of type int.
A. Any bit of x equals 1.
B. Any bit of x equals 0.
C. Any bit in the least significant byte of x equals 1.
D. Any bit in the most significant byte of x equals 0.
Your code should follow the bit-level integer coding rules (page 120), with the additional restriction that you may not use equality (==) or inequality (!=) tests.
◆SOLUTIONS◆
A. !!x
B. !!~x
C. !!(x & 0xFF)
D. !!(~ & 0xFF)
-------------------------------------------------

2.68 ◆◆
Write code for a function with the following prototype:
/*
* Mask with least signficant n bits set to 1
* Examples: n = 6 --> 0x2F, n = 17 --> 0x1FFFF
* Assume 1 <= n <= w
*/
Your function should follow the bit-level integer coding rules (page 120). Be careful of the case n = w.
◆SOLUTIONS◆
#include <limits> int value = 0x13; int val_1 = 0x22; int val_2 = 0x25;

{
}
-------------------------------------------------

2.71 ◆
You just started working for a company that is implementing a set of procedures to operate on a data structure where 4 signed bytes are packed into a 32-bit unsigned. Bytes within the word are numbered from 0 (least significant) to 3
(most significant). You have been assigned the task of implementing a function for a machine using two’s-complement arithmetic and arithmetic right shifts with the following prototype:
/* Declaration of data type where 4 bytes are packed into an unsigned */