我有下一个代码,它试图将双精度类型的数字转换为二进制形式。我知道这个算法,数字的整数部分可以像整型数字一样转换成二进制,剩下的分馏部分可以这样转换:
integerPart = (int)value;
fractionaryPart = value-integerPart;
while(fractionaryPart != 0.0)
{
fractionaryPart = fractionaryPart*2;
integerPart = (int)fractionaryPart;
fractionaryPart = fractionaryPart - integerPart;
}
这是转换整数部分的代码
bits = 64 //8 bytes
char binary[] = new char[bits];
for(i = bits-1;i >= 0;i--)
{
if((integerPart&1) == 1)
binary[i] = '1';
else if((integerPart&1) == 0)
binary[i] = '0';
integerPart >>= 1;
}
问题是我必须以双数查看RAM内存的方式打印整个数字(8字节格式),例如,如果我有数字42.375,结果必须是101010.011。但是我不知道如何组合时()和for()的二进制数并将它们放入64位的数组中,例如:
|00000000|00000000|00000000|00000000|00000000|00000000|00000010|1010.011|
有什么建议吗??
我总是按照RAM中显示的方式打印一个双精度数字,就是使用其中一个双精度数字。doubleToLongBits或Double。Double类中的doubleToRawLongBits方法。
这不是在内存中表示double的方式。
上述表示法适用于32位浮点,对于双精度浮点,它是52位尾数、11位指数和1位符号。
Double.doubleToLongBits
是如何得到这个,而long BitsToDouble
是反向转换。long BitsToDouble
的Javadoc讨论了转换的细节。
我有这个错误 根据代码 -- 例如,当我不通过将其声明为全局来捕获时,它就可以工作。但是当我在我的函数g范围内声明时,会显示此错误。 您知道问题是什么吗?我如何通过将保持在我的函数本地来解决问题?
问题内容: 整个早晨,我一直在用头撞墙。 以下SQL代码及其结果对我来说没有意义: 结果是: 什么?为什么结果不等于我的原始整数? 我的整个目标是将整数转换为字节并将这些字节存储到数据库中,但是却没有使这个基本示例正常工作。谁能解释我在做什么错? 顺便说一句,我正在使用Sql Server 2005(9.0.4340) 问题答案: 正如我在较早的评论中所指出的,2,691,485,888比廉政局所
我想知道如何将舞蹈方法的十进制结果包含到灯光方法中。例如,在这个程序中,如果我输入5F,十进制结果将是95。我希望95在light方法中显示为静态int变量,以便转换为二进制数。如果你能告诉我如何将十六进制数限制在2位数以内,那也会很有帮助。感谢阅读! } }
我编写了简单的java代码将十进制转换为8位二进制:很抱歉这个愚蠢的问题 //int j=8-结果。长度();//对于(int i=0;i 结果是:dec长度为:1****反转前8位:10000 8位表示:00001 但当我删除第13行时(结果=0;)编译器打印7星号(*),原因是什么?每次都会更新结果的长度
我试着这样读: 我尝试只打印出字符串(当我创建string str=new string(allBytes,“UTF-8”)时),但我得到的只是开头的一个正方形,然后是70多个没有文本的空行。然后我尝试了int charCode=integer.parseint(str.substring(I,I+8),2);并打印出每个单独的字符,但我得到了一个NumberFormatException。我甚至
更新:我已经尝试将getCalcMean()和calcMean;我理解这个错误的含义,但我不知道如何修复它,因为最终结果需要是double,我认为java可以计算double和int并得到double。我做错了什么? 我正在计算键入999后的总数平均值,但它一直显示为0,我不知道为什么。 有人能告诉我如何让我的getCalcMean()方法将平均值显示为numTotal/count吗? ---班级