Java 将字符串二进制转换为整数
如果不使用乘法、除法或mod,我如何做到这一点 我带来了解决方案,但它需要乘法运算Java 将字符串二进制转换为整数,java,Java,如果不使用乘法、除法或mod,我如何做到这一点 我带来了解决方案,但它需要乘法运算 public StringBToInt(String b) { int value = 0; for(int z = 0; z < b.length(); z++) { value = value * 2 + (int)b.charAt(i) - 48; } } 公共字符串点(字符串b){ int值=0; 对于(intz=0;z
public StringBToInt(String b) {
int value = 0;
for(int z = 0; z < b.length(); z++) {
value = value * 2 + (int)b.charAt(i) - 48;
}
}
公共字符串点(字符串b){
int值=0;
对于(intz=0;z
编辑:对不起!只允许使用3个java API。length()、charAt()和equals()使用
Integer.valueOf(String,int)
方法:
Integer.valueOf('10101',2)
使用
Integer.valueOf(String,int)
方法:
Integer.valueOf('10101',2)
尝试像这样使用
Integer.parseInt(..)
:
int value = Integer.parseInt(b, 2);
当然
b
是一个二进制字符串 试着像这样使用Integer.parseInt(..)
:
int value = Integer.parseInt(b, 2);
当然
b
是一个二进制字符串 如果不使用乘法,请使用按位移位运算符:
public StringBToInt(String b) {
int value = 0;
for(int z = 0; z < b.length(); z++) {
if(b.charAt(z) == '1'){
shift = b.length()-z-1;
value += (1 << shift);
}
}
}
公共字符串点(字符串b){
int值=0;
对于(intz=0;z 值+=(1不带乘法,使用位移位运算符:
public StringBToInt(String b) {
int value = 0;
for(int z = 0; z < b.length(); z++) {
if(b.charAt(z) == '1'){
shift = b.length()-z-1;
value += (1 << shift);
}
}
}
公共字符串点(字符串b){
int值=0;
对于(intz=0;z value+=(1您可以使用方法Integer.parseInt
来执行此操作
String binary = "101010"
int value = Integer.parseInt(binary, 2);
Integer.parseInt
中的“2”表示解析基2中的字符串。您可以使用Integer.parseInt
方法来完成此操作
String binary = "101010"
int value = Integer.parseInt(binary, 2);
Integer.parseInt
中的“2”意味着解析基2中的字符串。这个家庭作业问题显然需要加法。你能使用数组或列表吗?输入的字符串是否为固定长度?是的,它允许加法和减法。不,你不能使用数组或列表。只能使用整数和字符串使用charAt()、length()和equals。那么输入长度呢?它是固定的输入长度,是在一个范围内有变化,还是可能无限长?它是固定的长度。例如(“1111”=>15)这个家庭作业问题显然需要加法。您可以使用数组
或列表
?输入的字符串
是固定长度吗?是的,它允许加法和减法。否,您不能使用数组或列表。只能使用带charAt(),length()的整数和字符串输入长度呢?是固定的输入长度,是在一个范围内有变化,还是可能无限长?它是一个固定的长度。例如(“1111”=>15)if(b.charAt(z).equals('1')){
缺少右括号且不起作用-基元类型char
没有equals
方法!if(b.charAt(z).equals('1'){
缺少右括号且不起作用-基元类型char
没有equals
方法!b.tocharray()[i]
是b.charAt(i)
b.toCharArray()[i]
是b.charAt(i)