Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
|
|
@ -0,0 +1,54 @@
|
|||
get "libhdr";
|
||||
|
||||
// Reverse a string
|
||||
let reverse(str) = valof
|
||||
$( let i = 1
|
||||
let j = str%0
|
||||
while i<j
|
||||
$( let c = str%i
|
||||
str%i := str%j
|
||||
str%j := c
|
||||
i := i+1
|
||||
j := j-1
|
||||
$)
|
||||
resultis str
|
||||
$)
|
||||
|
||||
// Convert number to string given base
|
||||
let itoa(n, base, buf) = valof
|
||||
$( let digitchar(n) =
|
||||
n < 10 -> n + '0',
|
||||
(n - 10) + 'A'
|
||||
buf%0 := 0
|
||||
$( buf%0 := buf%0 + 1
|
||||
buf%(buf%0) := digitchar(n rem base)
|
||||
n := n / base
|
||||
$) repeatuntil n<=0
|
||||
resultis reverse(buf)
|
||||
$)
|
||||
|
||||
// Convert string to number given base
|
||||
let atoi(str, base) = valof
|
||||
$( let digitval(d, base) =
|
||||
'0' <= d <= '9' -> d - '0',
|
||||
'A' <= d <= 'Z' -> (d - 'A') + 10,
|
||||
'a' <= d <= 'z' -> (d - 'a') + 10,
|
||||
0
|
||||
let result = 0
|
||||
for i=1 to str%0 do
|
||||
result := result * base + digitval(str%i, base)
|
||||
resultis result
|
||||
$)
|
||||
|
||||
// Examples
|
||||
let start() be
|
||||
$( let buffer = vec 64
|
||||
|
||||
writes("1234 in bases 2-36:*N")
|
||||
for base=2 to 36 do
|
||||
writef("Base %I2: %S*N", base, itoa(1234, base, buffer))
|
||||
|
||||
writes("*N*"25*" in bases 10-36:*N")
|
||||
for base=10 to 36 do
|
||||
writef("Base %I2: %N*N", base, atoi("25", base))
|
||||
$)
|
||||
Loading…
Add table
Add a link
Reference in a new issue