fork download
  1. #include <stdio.h>
  2. #include <stdint.h>
  3. #include <string.h>
  4. #include <inttypes.h>
  5.  
  6. union Str
  7. {
  8. uint64_t a;
  9. char str[8];
  10. };
  11.  
  12. int main(void)
  13. {
  14. union Str str;
  15. memcpy( &str.str, "12345678", sizeof(str.a));
  16.  
  17. str.a = ((str.a & 0x0F000F000F000F00) >> 8 ) +
  18. ((str.a & 0x000F000F000F000F) * 10 );
  19.  
  20. str.a = ((str.a & 0xFFFF0000FFFF0000) >> 16 ) +
  21. ((str.a & 0x0000FFFF0000FFFF) * 100 );
  22.  
  23. str.a = ((str.a & 0xFFFFFFFF00000000) >> 32 ) +
  24. ((str.a & 0x00000000FFFFFFFF) * 10000 );
  25. //little-endian only. Можно переделать под big-endian
  26.  
  27. printf("%"PRIu64, str.a);
  28.  
  29. return 0;
  30. }
Success #stdin #stdout 0s 1832KB
stdin
Standard input is empty
stdout
12345678