fork download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <stdint.h>
  5.  
  6. #define TEXT_LENGTH 512
  7. #define FINAL_LENGTH 128 // just 512/4
  8.  
  9. int main(){
  10.  
  11. unsigned char text[TEXT_LENGTH] = {0};
  12. const char *sPlaceHolder = "This string is just a place holder for some value that can copied and placed into the text array/string so it can be further converted into uint32 values.";
  13. strcpy(text, sPlaceHolder);
  14.  
  15. uint32_t valueArray[FINAL_LENGTH] = {0}; // if you have 512 bytes of input to store and you want to store them in 4-byte chunks,
  16. // then 512/4 = 128
  17. int i;
  18. for(i=0; i < TEXT_LENGTH; i++){
  19. int mode = i % 4; // 4-to-1 value storage ratio (4 uint8s being stored as 1 uint32)
  20. int writeLocation = (int)(i/4); // values will be truncated, so something like 3/4 = 0 (which is desired)
  21. switch(mode){
  22. case(0):
  23. // add to bottom 8-bits of index
  24. valueArray[writeLocation] = text[i];
  25. break;
  26. case(1):
  27. valueArray[writeLocation] |= (text[i] << 8); // shift to left by 8 bits to insert to second byte
  28. break;
  29. case(2):
  30. valueArray[writeLocation] |= (text[i] << 16); // shift to left by 16 bits to insert to third byte
  31. break;
  32. case(3):
  33. valueArray[writeLocation] |= (text[i] << 24); // shift to left by 24 bits to insert to fourth byte
  34. break;
  35. default:
  36. printf("Some error occurred here... If source has been modified, please check to make sure the number of case handlers == the possible values for mode.\n");
  37. }
  38. }
  39.  
  40. // All done.
  41. // valueArray[0] will now contain bytes as: text[4] text[3] text[2] text[1]
  42. // ValueArray[1] will contain bytes as: text[8] text[7] text[6] text[5]
  43. // ... etc... all the way through the indices
  44.  
  45. // do some processing on your array, but for this example, i'm just going to print out the values at each index of the array.
  46. for(i=0; i < FINAL_LENGTH; i++){
  47. printf("ValueArray[%d]: \t%zu\n", i, valueArray[i]);
  48. }
  49.  
  50. return 1;
  51. }
Runtime error #stdin #stdout 0s 10320KB
stdin
Standard input is empty
stdout
ValueArray[0]: 	1936287828
ValueArray[1]: 	1920234272
ValueArray[2]: 	543649385
ValueArray[3]: 	1780511593
ValueArray[4]: 	544502645
ValueArray[5]: 	1819287649
ValueArray[6]: 	543515489
ValueArray[7]: 	1684828008
ValueArray[8]: 	1713402469
ValueArray[9]: 	1931506287
ValueArray[10]: 	543518063
ValueArray[11]: 	1970037110
ValueArray[12]: 	1752440933
ValueArray[13]: 	1663071329
ValueArray[14]: 	1663069793
ValueArray[15]: 	1701408879
ValueArray[16]: 	1851859044
ValueArray[17]: 	1819287652
ValueArray[18]: 	1684366177
ValueArray[19]: 	1953392928
ValueArray[20]: 	1752440943
ValueArray[21]: 	1702109285
ValueArray[22]: 	1629516920
ValueArray[23]: 	2036429426
ValueArray[24]: 	1920234287
ValueArray[25]: 	543649385
ValueArray[26]: 	1763733363
ValueArray[27]: 	1633886324
ValueArray[28]: 	1700929646
ValueArray[29]: 	1920296480
ValueArray[30]: 	1919248500
ValueArray[31]: 	1852793632
ValueArray[32]: 	1953654134
ValueArray[33]: 	1763730533
ValueArray[34]: 	544175214
ValueArray[35]: 	1953393013
ValueArray[36]: 	1981821491
ValueArray[37]: 	1702194273
ValueArray[38]: 	11891
ValueArray[39]: 	0
ValueArray[40]: 	0
ValueArray[41]: 	0
ValueArray[42]: 	0
ValueArray[43]: 	0
ValueArray[44]: 	0
ValueArray[45]: 	0
ValueArray[46]: 	0
ValueArray[47]: 	0
ValueArray[48]: 	0
ValueArray[49]: 	0
ValueArray[50]: 	0
ValueArray[51]: 	0
ValueArray[52]: 	0
ValueArray[53]: 	0
ValueArray[54]: 	0
ValueArray[55]: 	0
ValueArray[56]: 	0
ValueArray[57]: 	0
ValueArray[58]: 	0
ValueArray[59]: 	0
ValueArray[60]: 	0
ValueArray[61]: 	0
ValueArray[62]: 	0
ValueArray[63]: 	0
ValueArray[64]: 	0
ValueArray[65]: 	0
ValueArray[66]: 	0
ValueArray[67]: 	0
ValueArray[68]: 	0
ValueArray[69]: 	0
ValueArray[70]: 	0
ValueArray[71]: 	0
ValueArray[72]: 	0
ValueArray[73]: 	0
ValueArray[74]: 	0
ValueArray[75]: 	0
ValueArray[76]: 	0
ValueArray[77]: 	0
ValueArray[78]: 	0
ValueArray[79]: 	0
ValueArray[80]: 	0
ValueArray[81]: 	0
ValueArray[82]: 	0
ValueArray[83]: 	0
ValueArray[84]: 	0
ValueArray[85]: 	0
ValueArray[86]: 	0
ValueArray[87]: 	0
ValueArray[88]: 	0
ValueArray[89]: 	0
ValueArray[90]: 	0
ValueArray[91]: 	0
ValueArray[92]: 	0
ValueArray[93]: 	0
ValueArray[94]: 	0
ValueArray[95]: 	0
ValueArray[96]: 	0
ValueArray[97]: 	0
ValueArray[98]: 	0
ValueArray[99]: 	0
ValueArray[100]: 	0
ValueArray[101]: 	0
ValueArray[102]: 	0
ValueArray[103]: 	0
ValueArray[104]: 	0
ValueArray[105]: 	0
ValueArray[106]: 	0
ValueArray[107]: 	0
ValueArray[108]: 	0
ValueArray[109]: 	0
ValueArray[110]: 	0
ValueArray[111]: 	0
ValueArray[112]: 	0
ValueArray[113]: 	0
ValueArray[114]: 	0
ValueArray[115]: 	0
ValueArray[116]: 	0
ValueArray[117]: 	0
ValueArray[118]: 	0
ValueArray[119]: 	0
ValueArray[120]: 	0
ValueArray[121]: 	0
ValueArray[122]: 	0
ValueArray[123]: 	0
ValueArray[124]: 	0
ValueArray[125]: 	0
ValueArray[126]: 	0
ValueArray[127]: 	0