‘壹’ java中,如何将double类型数据转换为16进制字符串或者是16进制字节数组
1、转化为long类型
先Double.doubleToLongBits/Double.doubleToRawLongBits,得到long类型,
例子:
longl=0x0102030405060708L;
2、转化为16进制字符串或数组
byte[]b=newbyte[8];
b[0]=(byte)(l&0x000000000000FFL);
b[1]=(byte)((l&0x0000000000FF00L)>>8);
b[2]=(byte)((l&0x0000000000FF0000L)>>16);
b[3]=(byte)((l&0x00000000FF000000L)>>24);
b[4]=(byte)((l&0x000000FF00000000L)>>32);
b[5]=(byte)((l&0x0000FF0000000000L)>>40);
b[6]=(byte)((l&0x00FF000000000000L)>>48);
b[7]=(byte)((l&0xFF00000000000000L)>>56);
‘贰’ java中double数组转化为byte数组
其实问题转换为double如何转换为byte数组,如果知道一个double如何转换为byte数组,其他不过是重复而已
先介绍double转byte[]的方法:
假如有一个double d = 503.2135013通过以下方法可以得到byte[]
[java]view plain
publicstaticbyte[]double2Bytes(doubled){
longvalue=Double.doubleToRawLongBits(d);
byte[]byteRet=newbyte[8];
for(inti=0;i<8;i++){
byteRet[i]=(byte)((value>>8*i)&0xff);
}
returnbyteRet;
}
[java]view plain
(byte[]arr){
longvalue=0;
for(inti=0;i<8;i++){
value|=((long)(arr[i]&0xff))<<(8*i);
}
returnDouble.longBitsToDouble(value);
}
‘叁’ java 中各种数据类型转换byte[]的方法
ObjectOutputStream oos = null;//对象输出流
ByteArrayOutputStream baos = null;//byte数组输出流
ByteArrayInputStream s = null;//对象输入流
try {
//序列化
baos = new ByteArrayOutputStream();
oos = new ObjectOutputStream(baos);//将数组流传入对象流
oos.writeObject(new Integer(1));//用对象流读取对象。
byte[] bytes = baos.toByteArray();//用数组流将传入的对象转化为byte数组
//反序列化
s = new ByteArrayInputStream(bytes);
ObjectInputStream ois = new ObjectInputStream(s);
Integer i = (Integer)ois.readObject();
System.out.println(i);
} catch (Exception e) {
}以上是把integer类型转化成byte[]数组类型。注:基本类型要转化为byte[]数组的话,需要用该基本类型的引用类。比如int的引用类是integer,就行了所有的类型,包括class都可以用这种序列化方式来转成byte[],
‘肆’ java中double类型转换的方法是什么
Double是对象,double是基本类型。
你好Double类型是double的包装类,在JDK1.5以后,二者可以直接相互赋值,称为自动拆箱和自动装箱。看你的提示,我推测你的jdk版本在1.5以前。
如果是这样,可以用Double中的方法,将包装类转为基本数据类型,如:
double amount = rec.getAmount().doubleValue()。
‘伍’ Java中几种常用数据类型之间转换的方法
下面给你例举10种Java中几种常用的数据类型之间转换方法:
1. short-->int 转换
exp: short shortvar=0;
int intvar=0;
shortvar= (short) intvar
2. int-->short 转换
exp: short shortvar=0;
int intvar=0;
intvar=shortvar;
3. int->String 转换
exp: int intvar=1;
String stringvar;
Stringvar=string.valueOf (intvar);
4. float->String 转换
exp: float floatvar=9.99f;
String stringvar;
Stringvar=String.valueOf (floatvar);
5. double->String 转换
exp double doublevar=99999999.99;
String stringvar;
Stringvar=String.valueOf (doublevar);
6. char->String 转换
exp char charvar=’a’;
String stringvar;
Stringvar=String.valueOf (charvar);
7 String->int、float、long、double 转换
Exp String intstring=”10”;
String floatstring=”10.1f”;
String longstring=”99999999”;
String doubleString=”99999999.9”;
Int I=Integer.parseInt (intstring);
Float f= Integer.parseInt (floatstring);
Long lo=long. parseInt (longstring);
Double d=double. parseInt (doublestring);
8 String->byte、short 转换
Exp String s=”0”;
Byte b=Integer.intValue(s);
Short sh=Integer.intValue(s);
9 String->char 转换
Exp String s=”abc”;
Char a=s.charAt(0);
返回字符a
10 String-->boolean 转换
String s=”true”;
Boolean flag=Boolean.valueOf (“s”);
‘陆’ JAVA :int 转换为bite 以及double 转换为float 视频里解释成字节数不同又是咔嚓砍掉的是什么意思请高...
比如int转byte..
int是4个字节..byte是一个字节..所以int是32位二进制..byte是8位..
假如有个int是2..那么他换成二进制就是00000000....10 转成btye就是切掉前面的..直到剩下8位..所以转过来就是00000010..
‘柒’ java byte[]转double,二进制值相同,输出有差异
计算机中存储数据是二进制的,就像十进制无法准确表示1/3一样,二进制是无法准确表示1/10的,我觉得这是出现小数点的主要原因
‘捌’ java 变量数据类型转换byte, short, char, int, long, float, double
整数类型可以这样砍去多余的字节,但是在浮点型中有一个小数点,就是这个小数点导致浮点类型不能像整型一样进行转换。再多的就不知道了
^_^
‘玖’ java中如何进行安全的类型转换
java中类型转换有自动转化跟强制类型转换;打个比方就是:int转double类型是自动转化,
而double转化成int是强制类型转化;(注意强制类型转化会造成数据丢失)
以下是大概类型转化:
byte->short->int->long->double
char->int ->long->double
char->int ->float->double
long->float