fork download
  1. #include <stdio.h>
  2. #include <stdint.h>
  3.  
  4. void f(uint32_t result, size_t last_generated_size) {
  5. printf("conditional(0x%x << %2zu) = 0x%08x\n", result, 8 * last_generated_size, last_generated_size >= sizeof(result) ? 0 : result << (8 * last_generated_size));
  6. }
  7.  
  8. int main(void) {
  9. uint32_t r = 0x12345678;
  10. for (size_t s = 0; s <= 8; s++) {
  11. f(r, s);
  12. }
  13. return 0;
  14. }
  15.  
Success #stdin #stdout 0.01s 5304KB
stdin
Standard input is empty
stdout
conditional(0x12345678 <<  0) = 0x12345678
conditional(0x12345678 <<  8) = 0x34567800
conditional(0x12345678 << 16) = 0x56780000
conditional(0x12345678 << 24) = 0x78000000
conditional(0x12345678 << 32) = 0x00000000
conditional(0x12345678 << 40) = 0x00000000
conditional(0x12345678 << 48) = 0x00000000
conditional(0x12345678 << 56) = 0x00000000
conditional(0x12345678 << 64) = 0x00000000