将二进制转换为十进制/十六进制/八进制(java)[关闭]
Posted
技术标签:
【中文标题】将二进制转换为十进制/十六进制/八进制(java)[关闭]【英文标题】:Convert binary to decimal / hexadecimal / octal (java) [closed] 【发布时间】:2021-01-29 20:04:28 【问题描述】:我想将int number = 0b1101_1000;
转换为十进制/十六进制/八进制。
我在网上搜了一下,发现可以使用函数toOctalString(number)
。
很遗憾,它不适用于这种数字格式。
我猜它会转换为int number = 11011000
,但我的格式不同。
有什么函数可以轻松转换吗?
【问题讨论】:
Integer.toOctalString(0b1101_1000)
工作正常。您实际尝试了什么,有什么问题?
【参考方案1】:
机器中的数字只是数字,它们没有像 2、8 或 10 这样的底数(基数)。
只有当您想要以字符串形式表示时,基础才会发挥作用。
到第一点:
int number = 0b1101_1000;
和
int number = 216;
在内部产生完全相同的结果。它们只是相同值的不同源代码表示。
到第二点:要转换为将该值表示为十进制整数的字符串,请使用:
String s = Integer.toString(number);
或等效:
String s = Integer.toString(number, 10);
作为十六进制整数:
String s = Integer.toHexString(number);
或者,等价的,
String s = Integer.toString(number, 16);
(此时八进制应该很明显了)
【讨论】:
以上是关于将二进制转换为十进制/十六进制/八进制(java)[关闭]的主要内容,如果未能解决你的问题,请参考以下文章