我知道函数 Integer.parseInt()
的基数是将字符串转换为的基础。用基数/基数 16 转换的 11 基数 10 不应该是 B
而不是 17
?
以下代码按照教科书打印17:
public class Test {
public static void main(String[] args) {
System.out.println( Integer.parseInt("11", 16) );
}
}
最佳答案
当您使用基数执行 ParseInt
操作时,11 base 16 被解析为 17,这是一个简单的值。然后打印为基数 10。
你想要:
System.out.println(Integer.toString(11, 16));
这取十进制值 11(目前没有基数,例如有“11”个西瓜(比一个人的手指数多一个))并以基数 16 打印,得到 B
.
当我们采用 int
值时,它在计算机的物理内存中以 2 为基数存储(几乎在所有情况下),但这无关紧要,因为 parse 和 tostring 转换使用任意基数(10 乘以默认)。
关于java - Java 中的 radix 参数是什么,它是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17518221/