Data update
This commit is contained in:
parent
72eb4943cb
commit
4d5544505c
2347 changed files with 62432 additions and 16731 deletions
29
Task/Gray-code/SETL/gray-code.setl
Normal file
29
Task/Gray-code/SETL/gray-code.setl
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
program gray_code;
|
||||
loop for n in [0..31] do
|
||||
print(
|
||||
lpad(str n, 2) + ": " +
|
||||
lpad(bits n, 5) + " => " +
|
||||
lpad(bits(g := gray_encode(n)), 5) + " => " +
|
||||
lpad(bits(d := gray_decode(g)), 5) + ": " +
|
||||
lpad(str d, 2)
|
||||
);
|
||||
end loop;
|
||||
|
||||
proc gray_encode(n);
|
||||
return n bit_xor (n div 2);
|
||||
end proc;
|
||||
|
||||
proc gray_decode(n);
|
||||
loop
|
||||
init r := 0;
|
||||
step n div:= 2;
|
||||
until n=0 do r bit_xor:= n;
|
||||
end loop;
|
||||
return r;
|
||||
end proc;
|
||||
|
||||
op bits(n);
|
||||
b := '' +/ [[str (n mod 2), n div:=2](1) : until n=0];
|
||||
return reverse(b);
|
||||
end op;
|
||||
end program;
|
||||
Loading…
Add table
Add a link
Reference in a new issue