Bitwise operations: Difference between revisions

(Rename Perl 6 -> Raku, alphabetize, minor clean-up)
Line 5,487:
 
end</lang>
 
== {{header|XBasic}} ==
{{works with|Windows XBasic}}
<lang xbasic>
PROGRAM "bitwise"
 
DECLARE FUNCTION Entry()
INTERNAL FUNCTION ULONG Rotr(ULONG x, ULONG s)
 
FUNCTION Entry()
SLONG a, b
ULONG ua, ub
a = 21
b = 3
ua = a
ub = b
PRINT
PRINT "= Decimal ="
PRINT LTRIM$(STR$(a)); " AND"; b; ":"; a & b ' also: a AND b
PRINT LTRIM$(STR$(a)); " OR"; b; ":"; a | b ' also: a OR b
PRINT LTRIM$(STR$(a)); " XOR"; b; ":"; a ^ b' also: a XOR b
PRINT "NOT"; a; ":"; ~a ' also: NOT a
PRINT LTRIM$(STR$(a)); " <<<"; b; ":"; a <<< b ' arithmetic left shift
PRINT LTRIM$(STR$(a)); " >>>"; b; ":"; a >>> b ' arithmetic right shift
PRINT LTRIM$(STR$(ua)); " <<"; b; ":"; ua << b ' bitwise left shift
PRINT LTRIM$(STR$(ua)); " >>"; b; ":"; ua >> b ' bitwise right shift
PRINT LTRIM$(STR$(ua)); " rotr"; ub; ":"; Rotr(ua, ub)
PRINT
PRINT "= Binary ="
PRINT BIN$(a); " AND "; BIN$(b); ": "; BIN$(a & b)
PRINT BIN$(a); " OR "; BIN$(b); ": "; BIN$(a | b)
PRINT BIN$(a); " XOR "; BIN$(b); ": "; BIN$(a ^ b)
PRINT "NOT "; BIN$(a); ": "; BIN$(~a)
PRINT BIN$(a); " <<< "; BIN$(b); ": "; BIN$(a <<< b)
PRINT BIN$(a); " >>> "; BIN$(b); ": "; BIN$(a >>> b)
PRINT BIN$(ua); " << "; BIN$(b); ": "; BIN$(ua << b)
PRINT BIN$(ua); " >> "; BIN$(b); ": "; BIN$(ua >> b)
PRINT BIN$(ua); " Rotr "; BIN$(ub); ": "; BIN$(Rotr(ua, ub))
END FUNCTION
 
' Rotate x to the right by s bits
FUNCTION ULONG Rotr(ULONG x, ULONG s)
RETURN (x >> s) | (x << (SIZE(ULONG) * 8 - s))
END FUNCTION
END PROGRAM
</lang>
{{out}}
<pre>
= Decimal =
21 AND 3: 1
21 OR 3: 23
21 XOR 3: 22
NOT 21:-22
21 <<< 3: 168
21 >>> 3: 2
21 << 3: 168
21 >> 3: 2
21 rotr 3: 2684354562
 
= Binary =
10101 AND 11: 1
10101 OR 11: 10111
10101 XOR 11: 10110
NOT 10101: 11111111111111111111111111101010
10101 <<< 11: 10101000
10101 >>> 11: 10
10101 << 11: 10101000
10101 >> 11: 10
10101 rotr 11: 10100000000000000000000000000010
</pre>
 
=={{header|XLISP}}==
Anonymous user