Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java字符串到int二进制数的转换_Java - Fatal编程技术网

Java字符串到int二进制数的转换

Java字符串到int二进制数的转换,java,Java,我正在尝试将用户输入字符串转换为int。没有问题,我使用以下代码: c = sc.next(); while(!c.contains("#")){ i = Integer.parseInt(c); input.add(c); c= sc.next(); } (这只是执行转换的代码部分,扫描仪部分正在工作) 唯一的问题是,输入是二进制数,所以当输入是,例如“00111”,转换给我“111”,我不能丢失这些0。如何将用户输入转换为数字而不丢失左边的零?如果00111与111

我正在尝试将用户输入字符串转换为int。没有问题,我使用以下代码:

c = sc.next();
while(!c.contains("#")){
    i = Integer.parseInt(c);
    input.add(c);
    c= sc.next();
}
(这只是执行转换的代码部分,扫描仪部分正在工作)


唯一的问题是,输入是二进制数,所以当输入是,例如“00111”,转换给我“111”,我不能丢失这些0。如何将用户输入转换为数字而不丢失左边的零?

如果
00111
111
不同,则不能将其存储为整数,需要将其存储为字符串

然而,请注意,即使在二进制中,001112也等于1112

要解析二进制文本并将其存储为整数,可以使用

Integer.parseInt(c, 2);

(但这并不能解决保留前导零的问题。)

如果
00111
111
不同,则不能将其存储为整数,需要将其存储为字符串

然而,请注意,即使在二进制中,001112也等于1112

要解析二进制文本并将其存储为整数,可以使用

Integer.parseInt(c, 2);
(但这并不能解决保留前导零的问题。)

Integer.parseInt(“00111”,2)

但要区分二进制(2)和十进制(10)数字,必须事先知道基数

还是我不明白你的问题?您关于“丢失0”的陈述有点难以理解。

Integer.parseInt(“00111”,2)

但要区分二进制(2)和十进制(10)数字,必须事先知道基数

还是我不明白你的问题?您关于“丢失0”的陈述有点难以理解。

您应该使用:

Integer.parseInt(c, 2)
你应使用:

Integer.parseInt(c, 2)

要保留二进制字符串s中的前导零,请执行以下操作:

从字符串到整数:将“1”作为前缀附加到s,并转换为整数


从整数到字符串:将整数转换为二进制字符串并删除第一个“1”。

要保留二进制字符串中的前导零,请执行以下操作:

从字符串到整数:将“1”作为前缀附加到s,并转换为整数



从整数到字符串:将整数转换为二进制字符串,并删除第一个“1”。

这些是小的尾数二进制数吗?你不能丢失零而留下一个数字。它必须是零填充字符串才能以这种方式表示。您能解释一下为什么不能丢失零吗?请注意,在您当前的代码中,您没有使用
i
。为什么要将字符串转换为int?如果您确实需要,对于int类型,左边有零是没有意义的。对吗?这些是小的endian二进制数吗?你不能失去零而留下一个数字。它必须是零填充字符串才能以这种方式表示。您能解释一下为什么不能丢失零吗?请注意,在您当前的代码中,您没有使用
i
。为什么要将字符串转换为int?如果您确实需要,对于int类型,左边有零是没有意义的。对吗?这仍然会为
00111
111
提供相同的结果。这仍然会为
00111
111
提供相同的结果。这仍然会为
00111
111
@aioobe提供相同的结果,当然。但我认为操作混乱是从二进制到十进制的转换。执行Integer.parseInt(“00111”)返回111。这个“111”是以10为基数表示的整数,但op认为它是以2为基数表示的整数。这对于
00111
111
@aioobe仍然会给出相同的结果,当然。但我认为操作混乱是从二进制到十进制的转换。执行Integer.parseInt(“00111”)返回111。这个“111”是以10为基数表示的整数,但op认为它是以2为基数表示的整数。要保持前导零,应使用
NumerFormat
class。类似于
formatter=newdecimalformat(“00#####”)stringresult=formatter.format(Integer.parseInt(c,2))
为了保持前导零,您应该使用
NumerFormat
class。类似于
formatter=newdecimalformat(“00#####”)stringresult=formatter.format(Integer.parseInt(c,2))