Java でのshort
値の変換に問題があります。私は16ビットの符号なし値( Javaで)double
として表される実数を持っています。short
私がそれらを読んだとき、それらを に変換したいのですdouble
が、実行した後(double) value
、間違った結果がSystem.out.println(value)
得られ0.0
ます0.00034
。
double[][] dataD = null;
short[][] dataS = null;
try {
fits = new Fits(path); // here im readinf fits file
switch(bitpix) { // bitpix contains information about size of data
case 16: dataS = ((short[][]) fits.getHDU(0).getKernel()); break;
...
}
} catch (FitsException e) {}
catch (IOException e) {}
for( int i = 0; i < dataS.length; i++ )
for( int j = 0 ; j <dataS[0].length ; j++ ) {
switch(bitpix) {
case 16: dataD[i][j] = 0.0;
if( dataS[i][j] < 0 ) dataD[i][j] = dataS[i][j] + 32768;
else dataD[i][j] = dataS[i][j] ;
break;
}