fork(4) download
  1. #include <iostream>
  2. #include <bitset>
  3. using namespace std;
  4.  
  5. unsigned char custom_shift(unsigned char val, unsigned shift_bit) {
  6. unsigned char bit_val = val & (1 << shift_bit - 1); // Get current bit value
  7. val = val & ~(1 << shift_bit - 1); // Clear initial bit location
  8. val = bit_val ? // Update next bit to 0 or 1
  9. val | (1 << shift_bit) :
  10. val & ~(1 << shift_bit);
  11.  
  12. return val;
  13. }
  14.  
  15. int main() {
  16. std::cout << std::bitset<8>(custom_shift(0xCA, 4)) << std::endl;
  17. std::cout << std::bitset<8>(custom_shift(0xDA, 4)) << std::endl;
  18. std::cout << std::bitset<8>(custom_shift(0xD2, 4)) << std::endl;
  19.  
  20. return 0;
  21. }
Success #stdin #stdout 0s 4520KB
stdin
Standard input is empty
stdout
11010010
11010010
11000010