31 lines
1.1 KiB
Plaintext
31 lines
1.1 KiB
Plaintext
$ include "seed7_05.s7i";
|
|
include "bin32.s7i";
|
|
|
|
const proc: bitwise (in integer: a, in integer: b) is func
|
|
begin
|
|
writeln("a: " <& a radix 2 lpad0 32);
|
|
writeln("b: " <& b radix 2 lpad0 32);
|
|
writeln("integer operations:");
|
|
writeln("a << b: " <& a << b radix 2 lpad0 32); # left shift
|
|
writeln("a >> b: " <& a >> b radix 2 lpad0 32); # arithmetic right shift
|
|
end func;
|
|
|
|
const proc: bitwise (in bin32: a, in bin32: b) is func
|
|
begin
|
|
writeln("bin32 operations:");
|
|
writeln("a and b: " <& a & b radix 2 lpad0 32);
|
|
writeln("a or b: " <& a | b radix 2 lpad0 32);
|
|
writeln("a xor b: " <& a >< b radix 2 lpad0 32);
|
|
writeln("not a: " <& ~a radix 2 lpad0 32);
|
|
writeln("a << b: " <& a << ord(b) radix 2 lpad0 32); # left shift
|
|
writeln("a >> b: " <& a >> ord(b) radix 2 lpad0 32); # logical right shift
|
|
writeln("a rotL b: " <& rotLeft(a, ord(b)) radix 2 lpad0 32); # Rotate Left
|
|
writeln("a rolR b: " <& rotRight(a, ord(b)) radix 2 lpad0 32); # Rotate Right
|
|
end func;
|
|
|
|
const proc: main is func
|
|
begin
|
|
bitwise(65076, 6);
|
|
bitwise(bin32(65076), bin32(6));
|
|
end func;
|