java - 如何在 Java 中将二进制字符串转换为以 10 为底的整数

标签 java string binary radix

我有一个表示二进制数(不带前导零)的字符串数组,我想将其转换为相应的以 10 为基数的数字。考虑:

binary 1011 becomes integer 11
binary 1001 becomes integer 9
binary   11 becomes integer 3   etc. 

最好的方法是什么?我一直在探索 java.lang.number.* 却没有找到直接的转换方法。 Integer.parseInt(b) 产生一个与字符串相等的整数...例如,1001 变为 1,001 而不是 9...并且似乎不包含输出基数的参数。 toBinaryString 转换方向错误。我怀疑我需要进行多步转换,但似乎找不到正确的方法或子类组合。我也不确定前导零或缺少前导零会在多大程度上成为问题。有人有什么好的方向可以指点我吗?

最佳答案

您需要 specify the radix . Integer#parseInt() 的重载允许您这样做。

int foo = Integer.parseInt("1001", 2);

关于java - 如何在 Java 中将二进制字符串转换为以 10 为底的整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10178980/

相关文章:

c - (C) 当以文本模式而不是二进制模式写入文件时,哪些字符会受到影响?

c++ - 十进制转二进制(反之亦然)

java - Java非递归获取目录及其子目录下所有文件的方法

java - 异常是错误的子类吗?

java - 将 JavaUtilDate 转换为 NSDate,反之亦然?

java.lang.String#isEmpty() 与 org.apache.commons.lang.StringUtils#isEmpty()

java - (撤消/重做 || KeyStrokes)在 JEditorPane 中不起作用

java - 与字符串实习相关

java - input.nextLine() 在 while 循环内带有一个字符串

C - 像二进制数一样遍历 0 和 1 的数组