【发布时间】:2012-12-10 07:47:54
【问题描述】:
我正在尝试将一个以 10 为底的数字转换为以 2 为底的数字,然后再转换为以 10 为底的数字。它仅适用于正argument_decimal
argument_binary = Integer.toBinaryString(argument_decimal);
back_converted_argument_decimal = Integer.valueOf(argument_binary, 2);
对于argument_decimal beeing负数,我得到“java.lang.NumberFormatException:对于输入字符串:“1111111111111111111111111111111””
编辑:这是我的工作:
latitude_binary = Integer.toBinaryString((int)(latitude_decimal * 1000000));
back_converted_latitude_decimal = Long.parseLong(latitude_binary, 2) / 1000000.0;
这给了我不好的结果,比如 -1.1 来回转换为 4293.867296
【问题讨论】:
-
你的意思是基数 2 和基数 10,对吗?
-
正确。很抱歉造成混淆...
-
你输入的字符串是33个字符,所以这并不奇怪; Java 整数仅涵盖 32 位。那么,真的有问题吗?
-
我的 argument_decimal 是“-1”,我没有手动将 argument_binary 设置为 33,如果这是你的建议的话......
-
用我蹩脚的英语来描述它的上下文要复杂得多;)...我只需要它...
标签: java binary decimal negative-number