Advertisement
Guest User

Untitled

a guest
Jun 4th, 2012
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.56 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3. int pack(int field, int index, int value);
  4. int unpack(int field, int index);
  5.  
  6. int main(void) {
  7.  
  8. int bit = 0;
  9.  
  10. bit = pack(bit, 0, 1);
  11. bit = pack(bit, 1, 0);
  12. bit = pack(bit, 2, 1);
  13.  
  14. printf("bit: %i, index 0: %i, index 1: %i, index 2: %i", bit, unpack(bit, 0), unpack(bit, 1), unpack(bit, 2));
  15. return 0;
  16.  
  17. }
  18.  
  19. int pack(int field, int index, int value) {
  20.  
  21. return field|value<<index;
  22.  
  23. }
  24.  
  25. int unpack(int field, int index) {
  26.  
  27. int mask = 1 << index;
  28. int value = field & mask;
  29.  
  30. value = value >> index;
  31.  
  32. return value;
  33.  
  34. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement