如何将二进制string值转换为十进制
如何转换二进制string如
String c = "110010"; // as binary
到Java中的十进制值? (预期结果在这个例子中是50)
使用Integer.parseInt
(请参阅javadoc ),它将您的String
转换为使用基本二的int
:
int decimalValue = Integer.parseInt(c, 2);
public static int integerfrmbinary(String str){ double j=0; for(int i=0;i<str.length();i++){ if(str.charAt(i)== '1'){ j=j+ Math.pow(2,str.length()-1-i); } } return (int) j; }
这段代码我手写。 您也可以使用上面提到的parseInt。 这个函数会给出与二进制string对应的十进制数值:)
我想你正在寻找Integer.parseInt 。 第二个参数取一个基数,在这种情况下是2。
Integer.parseInt(c, 2)
int i = Integer.parseInt(c, 2);
int num = Integer.parseInt("binaryString",2);
必须考虑小数精度,所以你必须限制bitstring的长度。 无论如何,使用BigDecimal是一个不错的select。
public BigDecimal bitStringToBigDecimal(String bitStr){ BigDecimal sum = new BigDecimal("0"); BigDecimal base = new BigDecimal(2); BigDecimal temp; for(int i=0;i<bitStr.length();i++){ if(bitStr.charAt(i)== '1'){ int exponent= bitStr.length()-1-i; temp=base.pow(exponent); sum=sum.add(temp); } } return sum; }
public static void convertStringToDecimal(String binary) { int decimal=0; int power=0; while(binary.length()>0) { int temp = Integer.parseInt(binary.charAt((binary.length())-1)+""); decimal+=temp*Math.pow(2, power++); binary=binary.substring(0,binary.length()-1); } System.out.println(decimal); }
public static Long binToDec(String bin) { long dec = 0L; long pow = 1L; for (int i = (bin.length() - 1); i >= 0; i--) { char c = bin.charAt(i); dec = dec + (Long.parseLong(c + "") * pow); pow = pow * 2; } return dec; }
要么
long num = Long.parseLong("101110111",2);
testing它
import java.util.Scanner; public class BinaryToDecimal{ public static void main(String[] args) { Scanner input = new Scanner(System.in); int binaryNumber = 0; int counter = 0; int number = 0; System.out.print("Input binary number: "); binaryNumber = input.nextInt(); //it's going to stop when the binaryNumber/10 is less than 0 //example: //binaryNumber = 11/10. The result value is 1 when you do the next //operation 1/10 . The result value is 0 while(binaryNumber != 0) { //Obtaining the remainder of the division and multiplying it //with the number raised to two //adding it up with the previous result number += ((binaryNumber % 10)) * Math.pow(2,counter); binaryNumber /= 10; //removing one digit from the binary number //Increasing counter 2^0, 2^1, 2^2, 2^3..... counter++; } System.out.println("Decimal number : " + number); }
}
private static int convertBinaryToDecimal(String strOfBinary){ int flag = 1, binary=0; char binaryOne = '1'; char[] charArray = strOfBinary.toCharArray(); for(int i=charArray.length-1;i>=0;i--){ if(charArray[i] == binaryOne){ binary+=flag; } flag*=2; } return binary; }
public static void main(String[] args) { java.util.Scanner scan = new java.util.Scanner(System.in); long decimalValue = 0; System.out.println("Please enter a positive binary number.(Only 1s and 0s)"); //This reads the input as a String and splits each symbol into //array list String element = scan.nextLine(); String[] array = element.split(""); //This assigns the length to integer arrys based on actual number of //symbols entered int[] numberSplit = new int[array.length]; int position = array.length - 1; //set beginning position to the end of array //This turns String array into Integer array for (int i = 0; i < array.length; i++) { numberSplit[i] = Integer.parseInt(array[i]); } //This loop goes from last to first position of an array making //calculation where power of 2 is the current loop instance number for (int i = 0; i < array.length; i++) { if (numberSplit[position] == 1) { decimalValue = decimalValue + (long) Math.pow(2, i); } position--; } System.out.println(decimalValue); main(null); }
import java.util.*; public class BinaryToDecimal { public static void main() { Scanner sc=new Scanner(System.in); System.out.println("enter the binary number"); double s=sc.nextDouble(); int c=0; long s1=0; while(s>0) { s1=s1+(long)(Math.pow(2,c)*(long)(s%10)); s=(long)s/10; c++; } System.out.println("The respective decimal number is : "+s1); } }
- 使用Google Guava的Objects.ToStringHelper
- i18n在JSF 2.0应用程序中使用UTF-8编码的属性文件
- Java使用什么散列函数来实现Hashtable类?
- Flex / LCDS服务器到数据源的寻呼
- Java:object to byte 和byte to object converter(for Tokyo Cabinet)
- `LoaderManager`中`initLoader`和`restartLoader`的区别
- 使用监听器的ANTLR中的If / else语句
- Java中的数组长度
- 春季启动 – 如何在一个地方logging所有请求和exception的例外情况?