32 lines
632 B
Text
32 lines
632 B
Text
Rebol [
|
|
title: "Rosetta code: Bitwise operations"
|
|
file: %Bitwise_operations.r3
|
|
url: https://rosettacode.org/wiki/Bitwise_operations
|
|
needs: 3.10.0
|
|
]
|
|
|
|
do-test: function [code][
|
|
res: try code
|
|
case [
|
|
error? res [res: join "error: " res/id]
|
|
integer? res [res: enbase to-binary res 2]
|
|
]
|
|
printf [-21 " == "] reduce [form code res]
|
|
]
|
|
foreach test [
|
|
[10]
|
|
[2]
|
|
[10 AND 2]
|
|
[10 & 2]
|
|
[10 OR 2]
|
|
[10 | 2]
|
|
[10 XOR 2]
|
|
[10 >> 2]
|
|
[10 << 2]
|
|
[-65432]
|
|
[complement -65432]
|
|
[255]
|
|
[shift 255 -2]
|
|
[shift 255 56]
|
|
[shift/logical 255 56]
|
|
][ do-test test ]
|