Page 1 of 1

integer to byte & byte to integer conversion

Posted: Tue Apr 15, 2008 3:16 pm
by rose
Hi all,
Εστω αυτός ο κώδικας που κάνει convert ενα int σε 32 bits.

Code: Select all

public void converter(int n)
{ 
   byte seq_num[] = new byte[4];
  seq_num[0] = (byte) ((n & 0xFF000000) >>> 24);
  seq_num[1] = (byte) ((n & 0x00FF0000) >>> 16);
  seq_num[2] = (byte) ((n & 0x0000FF00) >>> 8);
  seq_num[3] = (byte) ((n & 0x000000FF));
}
Γνωρίζει κανένας την θεωρία?

Re: integer to byte & byte to integer conversion

Posted: Tue Apr 15, 2008 3:52 pm
by tsilochr
παίρνει το 32bit integer και φτιάχνει ενα πίνακα 4 στοιχείων τύπου byte.


Για να σπάσει το 32bit integer σε 4 bytes κάνει bitwise AND. Για να πάρει 8 πρώτα bits, κάνει AND του ακέραου με τον αριθμό 0xFF000000 ο οποίος μάλλον αναπαρίσταται με το 1111 1111 0000 0000 0000 0000 0000 0000 0000 0000. Στη πορεία, για να απομονώσει τα πρώτα 8 bit κάνει ένα shift προς τα αριστερά όσες θέσεις χρειάζεται, σε αυτή τη περίπτωση 24 ( >>> 24 )

Ομοίως για να πάρει και τις άλλες 8άδες

Re: integer to byte & byte to integer conversion

Posted: Tue Apr 15, 2008 4:24 pm
by rose
Thanks tsilochr.