Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
58
Task/Gray-code/Action-/gray-code.action
Normal file
58
Task/Gray-code/Action-/gray-code.action
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
PROC ToBinaryStr(BYTE n CHAR ARRAY s)
|
||||
BYTE i
|
||||
|
||||
s(0)=8 i=8
|
||||
SetBlock(s+1,8,'0)
|
||||
WHILE n
|
||||
DO
|
||||
s(i)=(n&1)+'0
|
||||
n==RSH 1
|
||||
i==-1
|
||||
OD
|
||||
RETURN
|
||||
|
||||
PROC PrintB2(BYTE n)
|
||||
IF n<10 THEN Put(32) FI
|
||||
PrintB(n)
|
||||
RETURN
|
||||
|
||||
PROC PrintBin5(BYTE n)
|
||||
CHAR ARRAY s(9),sub(6)
|
||||
|
||||
ToBinaryStr(n,s)
|
||||
SCopyS(sub,s,4,s(0))
|
||||
Print(sub)
|
||||
RETURN
|
||||
|
||||
BYTE FUNC Encode(BYTE n)
|
||||
RETURN (n XOR (n RSH 1))
|
||||
|
||||
BYTE FUNC Decode(BYTE n)
|
||||
BYTE res
|
||||
|
||||
res=n
|
||||
DO
|
||||
n==RSH 1
|
||||
IF n THEN
|
||||
res==XOR n
|
||||
ELSE
|
||||
EXIT
|
||||
FI
|
||||
OD
|
||||
RETURN (res)
|
||||
|
||||
PROC Main()
|
||||
BYTE i,g,b
|
||||
CHAR ARRAY sep=" -> "
|
||||
|
||||
FOR i=0 TO 31
|
||||
DO
|
||||
PrintB2(i) Print(sep)
|
||||
PrintBin5(i) Print(sep)
|
||||
g=Encode(i)
|
||||
PrintBin5(g) Print(sep)
|
||||
b=Decode(g)
|
||||
PrintBin5(b) Print(sep)
|
||||
PrintB2(b) PutE()
|
||||
OD
|
||||
RETURN
|
||||
Loading…
Add table
Add a link
Reference in a new issue