如何将以10为基数的长数转换为以9为基数,而不转换为字符串?
发布于 2010-10-08 16:40:11
顺便说一句,在你的机器中,所有的值实际上都是以2为基数的(我打赌你已经知道了)。它只显示为基数10,因为字符串转换创建了基数10的字符串表示形式(例如,当你打印时),因为像parseLong这样的方法假设输入的字符串是基数10,而且当你实际编写代码时,编译器希望所有的文字都在基数10中。换句话说,所有的东西都是二进制的,为了我们人类的方便,计算机只在基数10之间来回转换。
因此,我们应该能够轻松地将输出基数更改为10以外的值,从而获得基数为9的相同值的字符串表示。在Java语言中,这是通过将一个可选的额外基数参数传递到Long.toString方法来实现的。
long x=10;
System.out.println(Long.toString(x,9));发布于 2010-10-08 15:50:42
Long base10 = 10;
Long.valueOf(base10.toString(), 9);发布于 2010-10-08 16:13:56
“转换为基数9而不转换为字符串”到底是什么意思?
基数-9、基数-10、基数-2(二进制)、基数-16(十六进制)只是表示数的方式。值本身并不取决于您如何表示它。就编译器而言,int x = 256与int x = 0xff完全相同。
如果您不想“转换为字符串”(我将其理解为您不关心值的表示形式),那么您到底想要做什么?
https://stackoverflow.com/questions/3888613
复制相似问题