在 Squeak Smalltalk 中,我该怎么做才能在我想要的任何基数中显示数字?

In Squeak Smalltalk, what can I do to display a number in any base I want?

我做了基本的算术运算,得到了aa的答案

这是 Squeak 中的 Smalltalk 代码:

Transcript show: 'aa='.
Transcript show: 23124234 * 431213; cr.

The output is aa=9971470315842

9971470315842是十进制数。

我该怎么做才能根据我想要的任何整数显示基于 10 的数字??

比如说,55基,33基,2999基。任何正整数。

在 Squeak 中,您可以使用

12345 printStringBase: 17.
 '28C3'

您还可以添加基数(基数)并重新解释数字

17r28C3.
 12345

该行为在 base 36(10 位数字和 26 个拉丁字母)之前得到了很好的定义。然后你可能会得到一些带有更多字符代码的输出,但你将无法重新解释这些数字。

这也适用于浮点数:

Float pi printStringBase: 5.
 '3.0323221430334324112412'

5r3.0323221430334324112412.
  3.141592653589793

不幸的是,我们不能以 14 为底重新解释它们,因为指数字母 e 存在歧义(曾几何时,只使用大写字母作为数字,并且没有歧义)。

请注意,您可以使用 MethodFinder 工具查找方法。
打开方法查找器并输入接收者、参数和预期结果,例如:

34. 17. '20'

方法查找器将显示 2 个匹配方法,34 printStringBase: 17 --> '20'34 radix: 17 --> '20'