我正在做一个基于服务器的程序,我想将2个二进制字符串相乘。这些字符串很长,因此不能转换为long
或int
类型。这些字符串之一的示例是:01100010 00110110 00110011 00110111 00110100 00111001 00111001 00111001 00110110 01100011 00110110 01100101 00111001 00110011 00110011 00110010 00110010 00110010 01100001 00110101 01100100 01100011 01100011 01100010 01100100 00111000 01100100 01100100 00110010 00110110 00110110 00110100 00111000 01100110 00110001 00110100 00110110 01100110 01100110 01100100 00110100 00110101 00110100 01100010 01100010 00111001 00111001 00110110 01100110 01100010 00111000 00110011 00110000 00110011 00110010 01100110 01100010 00110001 01100010 01100001 00110100 01100011 01100011 00111000 00110110 00110111 01100110 00110001 00111001 00110110 00110110 00110001 00110001 01100101 00110010 00111000 01100100 01100110 01100110 01100001 01100100 00110100 00110110 00110000 00110010 00111001 00111001 00110011 00111000 01100001 00111001 00110111 00110111 00110011 00110010 01100011 00110100 00110000 01100011 01100101 01100010 01100011 01100011 00110101 01100110 00110111 00110000 00110110 00110000 00110110 00110101 01100101 01100001 01100100 00110011 01100100 00110100 01100110 01100110 00110111 00110110 00110011 00110111 00110100 00111001 00111001 00111001 00110000 00110001 00111001 01100001 01100010 01100101 00110011 00110010 00111001 01100011 01100110 01100101 00110011 00110010 01100011 01100011 00110010 00111000 00110110 00110001 01100001 00110111 00110110 00110101 01100010
此字符串可以有空格,也可以没有空格。没关系。我的问题是,如何用这个字符串乘以01100011?乘数的长度是可变的,因此必须具有灵活性。
提前致谢!
最佳答案
最简单的解决方案是将BigInteger与基数2一起使用。
BigInteger multiply = new BigInteger("01100010...01100010", 2)
.multiply(new BigInteger("01100011", 2));
System.out.println(multiply.toString(2));
相关问题:
How do you convert A binary number to a BigInteger in Java?
Using BigInteger Multiply operator
Converting BigInteger to binary string
关于java - Java中的长二进制字符串算术,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20828143/