fork download
  1. #include <bitset>
  2. #include <iostream>
  3.  
  4. std::bitset<128>
  5. starch_32 (const std::bitset<32> &input)
  6. {
  7. std::bitset<128> output;
  8.  
  9. for (size_t i = 0; i < input.size(); ++i) {
  10. // If `input[N]` is `true`, set `output[N*4, N*4+4]` to true.
  11. if (input.test (i)) {
  12. const size_t output_index = i * 4;
  13.  
  14. output.set (output_index);
  15. output.set (output_index + 1);
  16. output.set (output_index + 2);
  17. output.set (output_index + 3);
  18. }
  19. }
  20.  
  21. return output;
  22. }
  23.  
  24. // Example with 0xC.
  25. int main() {
  26. std::bitset<32> input{0xcf00};
  27.  
  28. auto result = starch_32 (input);
  29.  
  30. std::cout << std::hex << result.to_ullong() << "\n";
  31. }
Success #stdin #stdout 0s 3468KB
stdin
Standard input is empty
stdout
ff00ffff00000000