fork download
  1. #include <stdio.h>
  2.  
  3. //representa uma valor decimal em binĂ¡rio com 4 bits
  4. void print_binary(unsigned n) {
  5. unsigned i;
  6. for (i = 1 << 3; i > 0; i = i >> 1)
  7. (n & i) ? printf("1") : printf("0");
  8. }
  9.  
  10.  
  11. int main() {
  12. short a = 5; // 0101
  13. short b = 1; // 0001
  14.  
  15. printf("a = %d, b = %d\n", a, b);
  16. print_binary(a);
  17. printf(" e ");
  18. print_binary(b);
  19.  
  20. printf("\n a&b = %d - ", a & b);
  21. print_binary(a&b); // 0001
  22.  
  23. printf("\n a|b = %d - ", a | b);
  24. print_binary(a|b); // 0101
  25.  
  26. printf("\n a^b = %d - ", a ^ b);
  27. print_binary(a^b); // 0100
  28.  
  29. printf("\n ~a = %d - ", ~a);
  30. print_binary(~a); // 1010
  31.  
  32. printf("\n ~b = %d - ", ~b);
  33. print_binary(~b); // 1010
  34.  
  35. printf("\n a<<1 = %d - ", a << 1);
  36. print_binary(a << 1); // 10 1010
  37.  
  38. printf("\n a>>1 = %d - ", a >> 1);
  39. print_binary(a>>1); // 2 0010
  40.  
  41. printf("\n b<<2 = %d - ", b << 2);
  42. print_binary(b<<2); // 4 0100
  43.  
  44. printf("\n b>>2 = %d - ", b >> 2);
  45. print_binary(b>>2); // 0 0000
  46. }
Success #stdin #stdout 0s 5308KB
stdin
Standard input is empty
stdout
a = 5, b = 1
0101 e 0001
 a&b = 1 - 0001
 a|b = 5 - 0101
 a^b = 4 - 0100
 ~a = -6 - 1010
 ~b = -2 - 1110
 a<<1 = 10 - 1010
 a>>1 = 2 - 0010
 b<<2 = 4 - 0100
 b>>2 = 0 - 0000