我知道用Integer.toBinaryString(355) = 0000000101100011
和
将小数转换为二进制Integer.toBinaryString(-355) = 1111111010011101
(在这里我取32位结果的低16位)。
我想做的是另一种方法,并采用16位二进制补码二进制字符串并将其转换为十进制。
即
0000000000110010 = 50
1111111111001110 = -50
而不是 1111111111001110 = 65486
我该怎么做?
您需要将结果读取到中short
。
short res = (short)Integer.parseInt("1111111111001110", 2);
System.out.println(res);
此打印-50
。
我知道用和(其中我取32位结果的低16位)。 我想做的是另一种方法,取一个16位2的补码二进制字符串并转换为十进制。 即。 而不是 我该怎么做?
问题内容: 我想使用二进制补码表示一位负整数。使用标准的Python位表示实用程序并没有多大帮助: 的补码形式为。我该怎么做呢? 问题答案: Python的整数已经使用二进制补码,但是由于它们具有任意精度,因此负数的二进制表示形式在开始时将具有一个无限的1s字符串,就像正数具有一个无限的0s字符串一样。由于显然无法显示,因此用负号代替。 如果您想要特定宽度的二进制表示形式,则可以使用模数。
问题内容: 因此,计算机使用二进制补码在内部表示有符号整数。即,-5表示为^ 5 +1 =“ 1111 1011”。 但是,尝试打印二进制表示形式,例如以下代码: 输出。不太符合我的期望。格式是不同的还是还是不使用二进制补码? 有趣的是,转换为无符号int会导致“正确”位模式: 输出是-的2s补码。 因此,在我看来,值内部实际上是在使用二进制补码,但格式是打印无符号并加a 。 有人可以澄清吗? 问
问题内容: Python中的整数以二进制补码存储,对吗? 虽然: 和: 真是la脚。如何获取python以实数二进制位给我数字,并且没有0b开头?所以: 问题答案: 不确定如何使用标准库获取所需的内容。那里有一些脚本和软件包可以为您完成转换。 我只是想指出“为什么”以及为什么它不la脚。 bin()不返回二进制位。它将数字转换为二进制字符串。根据python语言定义,前导‘0b’告诉解释器您正在处
我想做一个java程序,用户输入一个十进制数,然后它转换成二进制。这是我到目前为止所拥有的,但是当我输入8时,虽然循环只循环一次,只给我0。我知道二进制中的8是1000,所以我不明白我做错了什么。我需要代码变得简单。请帮忙谢谢
问题内容: 我以为简单的事情并没有那么多。 我需要将一个长整数转换为二进制。 例如: 输出是10000000100 但是当我使用Integer.toBinaryString(2199023255552); 这是行不通的。当然,对于该函数而言,这个数字太大了,我找不到能从长整数转换的数字。 有什么建议? 谢谢。 问题答案: 添加一个以指示其long <1>并使用Long类 <2>: <1> 除非另有