fork download
  1. #include <stdio.h>
  2. #include <stdint.h>
  3. uint8_t m=0;
  4. uint8_t i=0; // 0 1 3 7 15
  5. uint8_t mass[10] = {0b00000000, 0b00000001, 0b00000011, 0b00000111, 0b00001111,
  6. // 31 63 127 255 255
  7. 0b00011111, 0b00111111, 0b01111111, 0b11111101, 0b10111111
  8. };
  9. uint8_t reverse (uint8_t d)
  10. {
  11. uint8_t a, b;
  12. static const uint8_t revTable[] = {0, 8, 4, 12, 2, 10, 6, 14, 1, 9, 5, 13, 3, 11, 7, 15};
  13. a = d >> 4;
  14. a = revTable[a];
  15. b = d & 0x0F;
  16. b = (revTable[b])<<4;
  17.  
  18. return (b | a);
  19. }
  20. int main(void) {
  21. // your code goes here
  22. for(i=0; i<10; i++){
  23. m = mass[i];
  24. for (uint8_t q = 0; q < 8; q++) {
  25. printf("%c", (m & 0x80) ? '1' : '0');
  26. m <<= 1;
  27. }
  28. // printf("%d", mass[i]);
  29. printf(",");
  30. }
  31. printf("\r");
  32. for(i=0; i<(sizeof(mass)/2); i++){
  33. uint8_t q = mass[i];
  34. mass[i] = mass[sizeof(mass)-1-i];
  35. mass[sizeof(mass)-1-i] = q;
  36. }
  37. for(i=0; i<10; i++){
  38. mass[i] = reverse (mass[i]);
  39. }
  40.  
  41.  
  42. for(i=0; i<10; i++){
  43. m = mass[i];
  44. for (uint8_t q = 0; q < 8; q++) {
  45. printf("%c", (m & 0x80) ? '1' : '0');
  46. m <<= 1;
  47. }
  48. // printf("%d", mass[i]);
  49. printf(",");
  50. }
  51. return 0;
  52. }
Success #stdin #stdout 0s 5284KB
stdin
Standard input is empty
stdout
00000000,00000001,00000011,00000111,00001111,00011111,00111111,01111111,11111101,10111111,
11111101,10111111,11111110,11111100,11111000,11110000,11100000,11000000,10000000,00000000,