【发布时间】:2016-08-31 17:06:16
【问题描述】:
我正在尝试找到一种快速/简单的方法将二进制补码二进制字符串转换为负十进制数。我尝试使用this question 中介绍的方法,但它不起作用。这是我要运行的代码:
short res = (short)Integer.parseInt("1001", 2);
System.out.println(res);
当我运行这段代码时,结果是 9。 我错过了什么吗? 我做错了什么?
【问题讨论】:
-
你没有应用任何逻辑来判断这个代码的二进制补码是什么。你知道为什么它是一个负数。您将不得不分解您尝试解析的数字并为其添加更多逻辑。不只是将其从二进制转换为十进制。
-
我应该应用什么逻辑?如果我的二进制字符串以“1”开头,我将它解码为负数。
-
如果我的原始数字是 7--> 111,如果我想表示 -7,它的二进制形式将是 1001。我想要的只是将 '1001' 解码为 -7。
标签: java binary twos-complement negative-number