fork download
  1. #include <stdio.h>
  2.  
  3. unsigned compress_maskA9_reversed1(unsigned x)
  4. {
  5. // result: he00 | 00ca;
  6. return (((x & 0x09)*0x88000000 >> 28) & 0x0C) | (((x & 0xA0)*0x04800000) >> 30);
  7. }
  8.  
  9. unsigned compress_maskA9_reversed2(unsigned x)
  10. {
  11. return ((x & 0xA8)*0x12400000 >> 29) | (x & 0x01) << 3; // result: 0eca | h000
  12. }
  13.  
  14. int main(void) {
  15. // your code goes here
  16. unsigned i;
  17. printf("Start\n");
  18. for (i = 0; i < 256; ++i)
  19. {
  20. // abcdefgh -> 0000heca
  21. unsigned r = (i & 0x01) << 3 | (i & 0x08) >> 1 | (i & 0x20) >> 4 | (i >> 7);
  22. if (compress_maskA9_reversed1(i) != r)
  23. {
  24. printf("(1) Error at %u\n", i);
  25. }
  26. if (compress_maskA9_reversed2(i) != r)
  27. {
  28. printf("(2) Error at %u\n", i);
  29. }
  30. }
  31. printf("Finished\n");
  32.  
  33. return 0;
  34. }
  35.  
Success #stdin #stdout 0s 2052KB
stdin
Standard input is empty
stdout
Start
Finished