Java String to int二进制数转换

时间:2012-05-09 13:44:04

标签: java

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

c = sc.next();
while(!c.contains("#")){
    i = Integer.parseInt(c);
    input.add(c);
    c= sc.next();
}

(这只是执行转换的代码的一部分,扫描仪部分正在运行)

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

4 个答案:

答案 0 :(得分:8)

如果00111111不同,则您无法将其存储为整数,则需要将它们存储为字符串。

但请注意,即使是二进制,00111 2 也等于111 2

要解析二进制文字并将其存储在整数中,请使用

Integer.parseInt(c, 2);

(但这并没有解决保持前导零的问题。)

答案 1 :(得分:3)

您应该使用:

Integer.parseInt(c, 2)

答案 2 :(得分:2)

Integer.parseInt("00111", 2);

但你必须提前知道基数以区分二进制(2)和十进制(10)数字。

或者我可能不明白你的问题?你关于“失0”的陈述有点难以理解。

答案 3 :(得分:0)

保存二进制字符串s中的前导零:

从字符串到整数:附加" 1"作为s的前缀并转换为整数。

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