Initial data commit

This commit is contained in:
Ingy döt Net 2023-07-01 11:58:00 -04:00
parent 72d218235f
commit f23f22d71c
199087 changed files with 3378941 additions and 0 deletions

View file

@ -0,0 +1,23 @@
package require Tcl 8.5
proc vlqEncode number {
if {$number < 0} {error "negative not supported"}
while 1 {
lappend digits [expr {$number & 0x7f}]
if {[set number [expr {$number >> 7}]] == 0} break
}
set out [format %c [lindex $digits 0]]
foreach digit [lrange $digits 1 end] {
set out [format %c%s [expr {0x80+$digit}] $out]
}
return $out
}
proc vlqDecode chars {
set n 0
foreach c [split $chars ""] {
scan $c %c c
set n [expr {($n<<7) | ($c&0x7f)}]
if {!($c&0x80)} break
}
return $n
}

View file

@ -0,0 +1,23 @@
proc numtohex {num} {
binary scan [string trimleft [binary format W $num] \0] H* hexEncoded
regsub -all "..(?=.)" $hexEncoded "&:"
}
proc strtohex {string} {
binary scan $string H* hexEncoded
regsub -all "..(?=.)" $hexEncoded "&:"
}
foreach testcase {
123
254 255 256 257
65534 65535 65536 65537
2097152 2097151
12345678901234566789
} {
set encoded [vlqEncode $testcase]
binary scan $encoded H* hexEncoded
regsub -all {..(?=.)} $hexEncoded &: hexEncoded
set decoded [vlqDecode $encoded]
puts "$testcase ([numtohex $testcase]) ==>\
[strtohex $encoded] ([string length $encoded] bytes) ==>\
$decoded"
}