Español
Java-Foro

Ayuda en Umsetzung de Java codesnippet

 

Andre
Rohland
¡Hola Amigos,

Yo stehe en Umsetzung uno Java-Quelltextes momentan una wenig "auf el Schlauch".

Im Grunde Yo zwar ya unos pocos Ideen:
- el "normale" Shifting en Java ( >> ) bedeutet, el z.B. beim Verschieben después de rechts en una Bit links siempre el Valor des vormals a el linken Punto stehenden Bits eingesetzt se.
- el "unsigned" Shifting ( >>> ) bedeutet, dass no Valor des vormals a el linken Punto stehenden Bits, pero siempre una "0" eingesetzt se.

Das todo wäre wohl con Ayuda el Zeichenkettenfunktionen (si auch algo umständlich ) a lösen, mächtiges Kopfzerbrechen bereitet me aber el folgende Línea:

boolean i = (dab & 0x01) == 0;

Tal vez sabe uno de Euch sí Java una wenig y kann me como helfen...

Der Grund, por qué Yo el dringend bewerkstelligen muss es, dass Yo el Sekundarradar el Flugzeuge empfange, aber el en el ADSB-Telegrammen übermittelte Höhenangabe el Flugzeuge una en una Luftdruck de 1013.2 mBar basierende barometrische Höhennangabe es, el el Codesnippet angeblich en plausible Höhenangaben en Fuß (ft) con uno Auflösung de 100 ft umrechnen puede se... .

Hier veces el originale Ver código fuente:
/**
* Method to convert octal data into a altitude with 100 foot resolution
*
* <p>Based on algorithm from Andy at Jetvision.de
*
* @param a a integer representing the first 3 bits
* @param b a integer representing the second 3 bits
* @param c a integer representing the third 3 bits
* @param d a integer representing the fourth 3 bits
* @volver a int representing the altitude en feet with 100 foot resolution
*             or -9999 for error
*/

public int altitudeDecode(int a, int b, int c, int d) {

    int alt = 0;
    int dab = grayToBinary((d << 6) + (a << 3) + b);
    boolean i = (dab & 0x01) == 0;
    dab = (dab * 500) - 1000;

    if (i) {

        switch (c) {

            caso 4:
            alt = dab + 200;
            romper;
            caso 6:
            alt = dab + 100;
            romper;
            caso 2:
            alt = dab;
            romper;
            caso 3:
            alt = dab - 100;
            romper;
            caso 1:
            alt = dab - 200;
            romper;
            default:
            alt = -9999;

        }

    } más {

        switch (c) {

            caso 4:
            alt = dab - 200;
            romper;
            caso 6:
            alt = dab - 100;
            romper;
            caso 2:
            alt = dab;
            romper;
            caso 3:
            alt = dab + 100;
            romper;
            caso 1:
            alt = dab + 200;
            romper;
            default:
            alt = -9999;

        }

    }

    volver alt;

}

/**
* Method to calculate altitude from Mode-C transponder type reply
* B[i] = XOR(B[i+1], G[i]) to convert Gray to binary
*
* <p>Based on a algorithm from Andy at Jetvision.de
*
* @param g a integer representing a gray code
* @volver a integer representing the binary value of the given gray code
*/

private int grayToBinary(int g) {

    int val = g & 0x80;
    val = val | ((g & 0x40) ^ ((val & 0x80) >>> 1));
    val = val | ((g & 0x20) ^ ((val & 0x40) >>> 1));
    val = val | ((g & 0x10) ^ ((val & 0x20) >>> 1));
    val = val | ((g & 0x08) ^ ((val & 0x10) >>> 1));
    val = val | ((g & 0x04) ^ ((val & 0x08) >>> 1));
    val = val | ((g & 0x02) ^ ((val & 0x04) >>> 1));
    val = val | ((g & 0x01) ^ ((val & 0x02) >>> 1));
    volver val;

}

 
02.10.2012  
 



Hi!

Yo habe Su código veces en Code-Tags gepackt.

Das debería uno ya tun si uno Fuente en Beiträgen postet.


... mächtiges Kopfzerbrechen bereitet me aber el folgende Línea:

boolean i = (dab & 0x01) == 0;


Diesen Operator verwendet uno para binären UND-Vergleich,

quasi se de:


00010001 &
00000001 =
00000001


y si en obigen Línea como null rauskommt (==0) entonces i = true, de otra manera

falso.
 
03.10.2012  
 




Andre
Rohland
Hola si,

primero sorry, hatte a el Code-Tags nada mehr pensamiento, ansonsten herzlichen Dank para Su Tip, ahora se lo tal vez "funktionuckeln"....
 
03.10.2012  
 



Respuesta


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

4.604 Views

Untitledvor 0 min.
Sven Bader10.09.2021
E.T.16.06.2020
Peter Max Müller28.10.2017
iF12.03.2015
Más...

Themeninformationen

Dieses Thema ha 2 subscriber:

Andre Rohland (2x)
iF (1x)


Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie