javadouble數組
A. java定義一個double類型長度為10的數組,從控制台輸入10個小數依次為數組每一個元素賦值。
B. java中double類數組要怎樣才能精確到有幾位小數點
double的表示方式如下:
符號位(1位)
|
指數(11位,1位符號位+10位指數位)
|
尾數(52位)
存儲方式是按照浮點的形式存儲,所以不存在整數部分和小數部分。比如1678.3456
=
1.6783456
*
10^3,但計算機只認識0、1,所以要將其轉化成二進制小數,我們不管轉換後的結果如何,轉換後得到的浮點數形式肯定是這種1.xxxxxx
*
2
^
y,其中xxxxxx表示小數部分,就是尾數,而小數點前面始終是1,可以不存儲,y就是指數部分。
所以上面的1.xxxxxx
*
2^y在計算機中就表示為:
0
|
y
+
127
|
xxxxxx
最前面的符號位為0表示正;指數存儲時要加上127;xxxxxx就是尾數。
float的表示方法類似,只是位數不一樣,如下:
符號位(1位)
|
指數(8位)
|
尾數(23位)
C. Java生成一個double數組,數組的長度由main的參數確定
一、需求分析
1、main函數接收參數時使用String args[],按照順序接收若干個參數,本題目中只需要接收1個
2、隨機double數函數是Random類的nextDouble()方法
3、for和foreach在java里的寫法都是for,不同之處在於foreach寫法是用冒號隔開,而for是分號隔開
二、代碼如下
import java.io.*;
import java.util.*;
public class Main
{
public static void main(String args[])
{
int len = Integer.parseInt(args[0]);
Double[] ds = new Double[len];
Random random = new Random();
for (int i=0; i<len; i++) {
ds[i] = random.nextDouble();
}
for(double d : ds)
{
System.out.println(d);
}
}
}
D. 如何定義JAVA中double類型的數組
如果您在一定區間內初始化別的數,可以使用Fill方法。
第一步:聲明數組。
double[] arr=new double[50];
第二步:填充。(比如都初始化成3.14)
Arrays.Fill(arr,3.14)。
E. JAVA中double類型的數組怎麼定義
如果您在一定區間內初始化別的數,可以使用Fill方法。
第一步:聲明數組。
double[] arr=new double[50];
第二步:填充。(比如都初始化成3.14)
Arrays.Fill(arr,3.14);
F. 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;
}
- 得到的8個位元組分別是:0x75 0xd2 0x56 0x80 0x6a 0x73 0x7f 0x40
- 下面就來介紹byte[]轉double方法:
(byte[]arr){
longvalue=0;
for(inti=0;i<8;i++){
value|=((long)(arr[i]&0xff))<<(8*i);
}
returnDouble.longBitsToDouble(value);
}
- 把0x75 0xd2 0x56 0x80 0x6a 0x73 0x7f 0x40傳入bytes2Double方法可以得到503.2135013
[java]view plain
G. java中Double與double型數組有啥區別
最大的區別是Double數組中可以有null值。
因為,Double是java對象,double是java原型數據類型。
所以,Double數組是一個對象數組,double型數組是一個原型數組。
從效率來看,double數組的效率會高。