Problème au niveau de la conversion d'une valeur via UDP
Bonjour,
Je suis en train de détecter un paramétre 'temperature' via UDP mais le problème est que la valeur affichée est egal x*10^4. Voila mon code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| // simple server waiting for datagrams and extracting ans displaying string
package udp_broad;
import java.io.*;
import java.util.*;
import java.util.zip.*;
import java.net.*;
import java.awt.event.ActionEvent;
public class UDP_broad extends Thread
{
public static void main(String args[])
{
try
{
int receivePort=999, i;
InetAddress remoteIPaddress; // IP address of remote host
int remotePort;
byte[] buffer = new byte[65507]; // array to put datagrams in
DatagramPacket dp = new DatagramPacket(buffer, buffer.length);
DatagramSocket ds = new DatagramSocket(receivePort);
while (true)
{
ds.receive(dp); // wait for next datagram
byte[] data = dp.getData(); // get datagram contents
for (i=93;i<=dp.getLength();i++)
System.out.println(" \n Temperature = " + (((data[99]<<8)+data[100])<<4));
}
}
catch (IOException se) {System.err.println("error " + se);}
System.exit(1); // exit on failure
}
} |
Ce code m'afiche 240702, j'ai fait comme ça :
Code:
System.out.println(" \nRotor Temperature = " + (((data[99]<<8)+data[100])<<4)/10000);
Mais ça m'affiche juste 24. Comment faire pour afficher 24,0702 ?
Merci d'avance