Bitwise operations: Difference between revisions
Content added Content deleted
(→{{header|OCaml}}: ++ gnu octave) |
(→{{header|C}}: Added C++; added return 0; to C main function (unlike C++, C requires this)) |
||
Line 196: | Line 196: | ||
unsigned int c = a; |
unsigned int c = a; |
||
printf("c >> b: %d\n", c >> b); /* logical right shift */ |
printf("c >> b: %d\n", c >> b); /* logical right shift */ |
||
return 0; |
|||
}</lang> |
}</lang> |
||
=={{header|C++}}== |
|||
{{trans|C}} |
|||
<lang cpp> |
|||
#include <iostream> |
|||
void bitwise(int a, int b) |
|||
{ |
|||
std::cout << "a and b: " << (a & b) << '\n'; // Note: parentheses are needed because & has lower precedence than << |
|||
std::cout << "a or b: " << (a | b) << '\n'; |
|||
std::cout << "a xor b: " << (a ^ b) << '\n'; |
|||
std::cout << "not a: " << ~a << '\n'; |
|||
std::cout << "a shl b: " << (a << b) << '\n'; // Note: "<<" is used both for output and for left shift |
|||
std::cout << "a shr b: " << (a >> b) << '\n'; // typically arithmetic right shift, but not guaranteed |
|||
unsigned int c = a; |
|||
std::cout << "c sra b: " << (c >> b) << '\n'; // logical right shift (guaranteed) |
|||
} |
|||
=={{header|Common Lisp}}== |
=={{header|Common Lisp}}== |