tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
2
ZUGRIFFE
915
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    FrankTheFox FrankTheFox ist offline Rookie
    Registriert seit
    Nov 2004
    Beiträge
    5
    Hallo,


    Code :
    1
    2
    3
    4
    5
    
    1:           byte[] data = new byte;
    2:           for(int i=0; i<4;++i){
    3:              int shift = i <<3;
    4:              data[3-i]=(byte) ((number & (0xff << shift)) >>> shift);
    5:           }

    Ok ein int belegt 4 Byte. shift ergibt demzufolge 0,8,16,24
    24= 16777216 d.h. im 4 byte das erste bit anknipsen (0x00000001)
    16=65535 d.h. im 3 byte das erste -||- (0x00000001)
    8 = ...
    0 = ...

    Wenn ich jetzt 0xff << shift betrachte, dann bedeutet meiner Meinung nach
    0xff << 0 = 1111 1111
    0xff << 8 = 0000 0000
    0xff << 16 = 0000 0000
    0xff << 24 = 0000 0000
    Welchen Sinn hat den ein schieben eines Byte um z.B. 24, 16, 8? Oder hab' ich da was falsch verstanden. Sind dann nicht immer Byte 3 Byte 2 und Byte1 immer gleich null? Und demnach auch der & mit number (wobei das ja wiederum 4 byte sind)?
    Kann mir das mal jemand erklären.


    Gruß
    Franky
     

  2. #2
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.168
    Hi.
    Zitat Zitat von FrankTheFox Beitrag anzeigen
    Code :
    1
    
    1:           byte[] data = new byte;
    Das sollte wohl eher new byte[4] heißen...
    Zitat Zitat von FrankTheFox Beitrag anzeigen
    Wenn ich jetzt 0xff << shift betrachte, dann bedeutet meiner Meinung nach
    0xff << 0 = 1111 1111
    0xff << 8 = 0000 0000
    0xff << 16 = 0000 0000
    0xff << 24 = 0000 0000
    Vorsicht. 0xff ist ein Integer-Literal, d.h. es hat eine Größe von 4 Byte.

    0xff << 24 = 11111111000000000000000000000000

    Gruß
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  3. #3
    FrankTheFox FrankTheFox ist offline Rookie
    Registriert seit
    Nov 2004
    Beiträge
    5
    Hi,


    Das sollte wohl eher new byte[4] heißen...

    ja mein Fehler!


    Ok, ich denke jetzt ist es mir klar. Danke.

    Gruß
    Franky
     

Ähnliche Themen

  1. Antworten: 5
    Letzter Beitrag: 22.02.10, 12:05
  2. Konvertierung von Integer in Byte Array
    Von javaprogger1987 im Forum Java
    Antworten: 14
    Letzter Beitrag: 05.01.10, 21:09
  3. Antworten: 4
    Letzter Beitrag: 19.04.07, 15:15
  4. Antworten: 10
    Letzter Beitrag: 16.12.04, 12:29
  5. Integer to Byte
    Von Wolfsbein im Forum Java
    Antworten: 5
    Letzter Beitrag: 18.10.04, 13:17