Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
14
Task/Gray-code/Tcl/gray-code-1.tcl
Normal file
14
Task/Gray-code/Tcl/gray-code-1.tcl
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
namespace eval gray {
|
||||
proc encode n {
|
||||
expr {$n ^ $n >> 1}
|
||||
}
|
||||
proc decode n {
|
||||
# Compute some bit at least as large as MSB
|
||||
set i [expr {2**int(ceil(log($n+1)/log(2)))}]
|
||||
set b [set bprev [expr {$n & $i}]]
|
||||
while {[set i [expr {$i >> 1}]]} {
|
||||
set b [expr {$b | [set bprev [expr {$n & $i ^ $bprev >> 1}]]}]
|
||||
}
|
||||
return $b
|
||||
}
|
||||
}
|
||||
6
Task/Gray-code/Tcl/gray-code-2.tcl
Normal file
6
Task/Gray-code/Tcl/gray-code-2.tcl
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
package require Tcl 8.6; # Just for %b format specifier
|
||||
for {set i 0} {$i < 32} {incr i} {
|
||||
set g [gray::encode $i]
|
||||
set b [gray::decode $g]
|
||||
puts [format "%2d: %05b => %05b => %05b : %2d" $i $i $g $b $b]
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue