❶ 八个byte中存储的数据 如何变成一double呢java实现
不太清楚扒差8个Byte的存春团皮放方式或或,其实可以使用
Double.valueOf(new
String(B))
其中B是8个Byte的数组
❷ Java中给byte变量直接赋值可以自动转换,但为什么把int变量赋给byte变量需要强制转换,同样是int。
是这样的,整型直接量在没有加后缀的时候默认为int,但是当它被赋值给某个变量(这个变量是short型,int型,byte型中的一种)时,则会自动磨搏皮转化成相对应的类型。
比如说byte a=127;这里的127在没有赋值给a时默认是int型瞎差,赋值时自动调为byte型,并赋给a。
但是,如果出现这样的情银耐况:
int a=12;//此处a已经确定是int型
byte b=(byte)a;/**此处必须强制转
换!因为a已经确
定是int型,必
须转化成byte型
**/
❸ Java 读取二进制文件 ,读八个字节,然后转换成一个double,怎么写 我知道怎么读四个字节转成int的。
先申明一下你的前提是二进制文件,读取8个字节,那培埋么可以这么做:
public double readDouble(InputStream in) throws IOException {
byte[] tmp = new byte[8 * 8];//8个字节蔽中岁长度宏睁
if (in != null && (in.read(tmp) != -1)) {
String str = new String(tmp);
return Double.valueOf(str);
}
return -1;
}
❹ Java:byte转换为整型,是如何补位的呢
你好:试试下面的方法
public static void main(String args[]){
String s = "101011110001";
int x = 0;
for(char c: s.toCharArray())
x = x * 2 + (c == '1' ? 1 : 0);
System.out.println(x);
}
❺ java如何将字节数组每8个转换成double大致代码就行 解决马上给分
不给代码,讲下大致思路。
在java里,是用IEEE754标准来定义float,double这种浮点数的。
你可以先查下什么是IEEE754标准,以及它是如何通过指数和尾数的方式来表示浮点数的。
然后在java里,double类型的长度是64位,也就是刚好8个byte的长度,通过IEEE754表示的话,类似于下面这样的:
符号位 指数位 尾数位 指数偏移量
32位 1[31] 8[23-30] 23[0-22] 127
64位 1[63] 11[52-62] 52[0-51] 1023
所以,你只要把每个byte表示成二进制后拼成64位的二进制数,然后根据上面的公式来算出对应double类型的值就可以了。
❻ java中如何把一个String类型的变量转换成double型的
Double.parseDouble(String类型变量)
例如定义String变量A为“10”,将String转化为Double变量。
我写出来了,你可以看一下,如下图:
(6)javabytetodouble扩展阅读:
Javascript具有的数据类型。
有5种基本数据类型:number(整形和浮点型)、string、null、boolean和undefined。此外还有一种复杂的数据类型—Object,Object本质上是由一组无序的名值对象组成的,如Date对象是一个日期和时间类型。
String对象是动态对象,需要创建对象实例后才能引用它的属性和方法。在创建一个String对象变量时,可以使用new运算符来创建,也可以直接将字符串赋给变量。例如:strValue="Hello"与strVal=new String("hello")是等价的。
double(双精度浮点型)是计算机使用的一种资料型别。比起单精度浮点数(float),double(双精度浮点数)使用 64 位(8字节) 来储存一个浮点数。
它可以表示十进制的15或16位有效数字,负值取值范围为 -1.7976E+308 到 -4.94065645841246544E-324,正值取值范围为 4.94065645841246544E-324 到 1.797693E+308
❼ java如何将 byte [4] 转换到float
推荐答案是错误地把字节等同与字符。
byte b[]={0x41,(byte) 0xc8,0,0};
//方法1 流输入,适用于ME/SE环境
//默认大端数,如果小端数,可以先翻转数组
DataInputStream dis=new DataInputStream(new ByteArrayInputStream(b));
float f=dis.readFloat();
dis.close();
System.out.println(f);
//方法2 缓存输入,适用于SE/EE环境
ByteBuffer buf=ByteBuffer.allocateDirect(4); //无额外内存的直接缓存
//buf=buf.order(ByteOrder.LITTLE_ENDIAN);//默认大端,小端用这行
buf.put(b);
buf.rewind();
float f2=buf.getFloat();
System.out.println(f2);
都将显示读出来的浮点数25.0
❽ java 中byte.short,int,long,float,double 的取值范围分别是多少
其中byte、short、int、long都是表示整数的,只不过他们的取值范围不一样
byte的取值范围为-128~127,占用1个字节(-2的7次方到2的7次方-1)
short的取值范围为-32768~32767,占用2个字节(-2的15次方到2的15次方-1)
int的取值范围为(-2147483648~2147483647),占用4个字节(-2的31次方到2的31次方-1)
long的取值范围为(-9223372036854774808~9223372036854774807),占用8个字节(-2的63次方到2的63次方-1)
float和double是表示浮点型的数据类型,他们之间的区别在于他们的精确度不同
float 3.402823e+38 ~ 1.401298e-45(e+38表示是乘以10的38次方,同样,e-45表示乘以10的负45次方)占用4个字节
double 1.797693e+308~ 4.9000000e-324 占用8个字节
double型比float型存储范围更大,精度更高,所以通常的浮点型的数据在不声明的情况下都是double型的,如果要表示一个数据是float型的,可以在数据后面加上“F”。
浮点型的数据是不能完全精确的,所以有的时候在计算的时候可能会在小数点最后几位出现浮动,这是正常的。
❾ java byte[]转double,二进制值相同,输出有差异
计算机中存储数据是二进制的,就像十进制无法准确表示1/3一样,二进制是无法准确表示1/10的,我觉得这是出现小数点的主要原因
❿ byte数组怎么转化为double
其实问题转友仔神换为double如何转换为byte数组,如果知道一个double如何转换为byte数组,其他不过是重复而已 先介绍double转byte[]的方法: 假如有一个double d = 503.2135013通过以戚首下方法可好亏以得到byte[] [java] view plain public static byte[...