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}}==