|  |   | 
|  | 
| 
 |  Chapter 20Answers to Selected Exercises
2. [was #2] To toggle a bit in a variable  i = i ^ 0x0010; or, more concisely, i ^= 0x0010; 
4. [was #4]  #define MK_COLOR(r,g,b) ((long) (b) << 16 | (g) << 8 | (r)) 6. [was #6; modified] (a) 
#include <stdio.h>
unsigned short swap_bytes(unsigned short i);
int main(void)
{
  unsigned short i;
  printf("Enter a hexadecimal number (up to four digits): ");
  scanf("%hx", &i);
  printf("Number with bytes swapped: %hx\n", swap_bytes(i));
  return 0;
}
unsigned short swap_bytes(unsigned short i)
{
  unsigned short high_byte = i << 8;
  unsigned short low_byte = i >> 8;
  return high_byte | low_byte;
}
(b) 
unsigned short swap_bytes(unsigned short i)
{
  return i << 8 | i >> 8;
}
8. [was #8] 
(a) The value of  
(b) It returns a bit-field within  14. [was #9] 
struct IEEE_float {
  unsigned int fraction: 23;   /* members may need to be reversed */
  unsigned int exponent: 8;
  unsigned int sign: 1;
};
Copyright © 2008, 1996 W. W. Norton & Company, Inc. All rights reserved. |