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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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