Number to base block

What's this called:

|

press and hold "a"; before one second:

a|

after one second:

aa...|

where "..." means one "a" every 0.01 seconds?

Edit: Key repeat

key repeat.

Yeah. I realized that a few minutes later. (I guess I forgot to edit it.)

(a loooong time later)
I've finally made the project. Here: Snap! 7.0.3 - Build Your Own Blocks

I like that there's a clean separation between numerals (text strings), which are processed with text-like operators, and numbers, which are processed with arithmetic operators. So you clearly understand that the conversions are between numbers and numerals, not, e.g., "decimal to binary," a horrible misunderstanding that I constantly struggle to cure teachers from.

The biggest problem is that, whatever you may think about case sensitivity vs. case independence in general, it's a universally agreed-on convention with respect to numerals in bases bigger than ten that, e.g., FFF16 = fff16.

I think the code is more complicated than necessary. You should have a helper function that takes a one-character text string (i.e., a digit) and reports the number it represents, and another one vice versa. That hides away all the unicode manipulation and leaves a nice simple main recursive function in both directions.

Base 64 has to have case-sensitivity, and I'm too lazy to make it case-insensitive for bases 11-36.

Oh I see, because some ancient protocol limits them to ASCII characters. I was wondering what that slash at the end was doing there. In a perfect world they'd have used Greek letters or something, still case-independent.

Maybe. I'll see if I can do that.

It now supports up to base 93, using the ASCII numbers and characters, as well as the Greek and Russian alphabets. Unfortunately, it doesn't work.

Uh huh, the good news and the bad news. :~) Just take it as one more object lesson on the First Law of Engineering.

Now add CJK and you'll have base 92,958

My goodness. That's a loooooooooooooooooooooot of characters.