fork download
  1. #include <stdio.h>
  2. #include <stdint.h>
  3.  
  4. uint16_t skipct;
  5. uint16_t xskipct;
  6.  
  7. void to_bin(uint16_t num, char *str)
  8. {
  9. // Iterate from the most significant bit to the least significant bit
  10. for (int i = 15; i >= 0; i--)
  11. *str++ = ((num >> i) & 1) ? '1' : '0';
  12.  
  13. *str = '\0';
  14. }
  15.  
  16. void do_sample()
  17. {
  18. char bstr[17];
  19.  
  20. skipct++;
  21. xskipct ^= skipct;
  22.  
  23. to_bin(skipct, bstr);
  24. printf("skipct: %d [ %16s ] ", skipct, bstr);
  25.  
  26. to_bin(xskipct, bstr);
  27. printf("xskiptct: %16s\n", bstr);
  28.  
  29. xskipct = skipct;
  30. }
  31.  
  32. int main(void)
  33. {
  34. uint16_t j;
  35.  
  36. for (skipct = 0, xskipct = 0, j = 0; j < 20; j++)
  37. do_sample();
  38.  
  39. for (j = 0; j < 16; j++)
  40. {
  41. if (j == 7)
  42. break;
  43. }
  44.  
  45. printf("j = %d\n", j);
  46.  
  47. return 0;
  48. }
  49.  
Success #stdin #stdout 0s 5320KB
stdin
Standard input is empty
stdout
skipct: 1 [ 0000000000000001 ] xskiptct: 0000000000000001
skipct: 2 [ 0000000000000010 ] xskiptct: 0000000000000011
skipct: 3 [ 0000000000000011 ] xskiptct: 0000000000000001
skipct: 4 [ 0000000000000100 ] xskiptct: 0000000000000111
skipct: 5 [ 0000000000000101 ] xskiptct: 0000000000000001
skipct: 6 [ 0000000000000110 ] xskiptct: 0000000000000011
skipct: 7 [ 0000000000000111 ] xskiptct: 0000000000000001
skipct: 8 [ 0000000000001000 ] xskiptct: 0000000000001111
skipct: 9 [ 0000000000001001 ] xskiptct: 0000000000000001
skipct: 10 [ 0000000000001010 ] xskiptct: 0000000000000011
skipct: 11 [ 0000000000001011 ] xskiptct: 0000000000000001
skipct: 12 [ 0000000000001100 ] xskiptct: 0000000000000111
skipct: 13 [ 0000000000001101 ] xskiptct: 0000000000000001
skipct: 14 [ 0000000000001110 ] xskiptct: 0000000000000011
skipct: 15 [ 0000000000001111 ] xskiptct: 0000000000000001
skipct: 16 [ 0000000000010000 ] xskiptct: 0000000000011111
skipct: 17 [ 0000000000010001 ] xskiptct: 0000000000000001
skipct: 18 [ 0000000000010010 ] xskiptct: 0000000000000011
skipct: 19 [ 0000000000010011 ] xskiptct: 0000000000000001
skipct: 20 [ 0000000000010100 ] xskiptct: 0000000000000111
j = 7