在 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'
我做了基本的算术运算,得到了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'