integer to byte & byte to integer conversion

Συζητήσεις για γλώσσες προγραμματισμού και θέματα σχετικά με προγραμματισμό.
Post Reply
User avatar
rose
Gbyte level
Gbyte level
Posts: 1921
Joined: Sun May 20, 2007 8:59 pm
Academic status: 4th year
Gender:

integer to byte & byte to integer conversion

Post by rose » Tue Apr 15, 2008 3:16 pm

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));
}
Γνωρίζει κανένας την θεωρία?
που θα πάει θα το δουμε...
User avatar
tsilochr
Wow! Terabyte level
Wow! Terabyte level
Posts: 3246
Joined: Tue Mar 16, 2004 2:47 pm
Academic status: PhD
Gender:
Location: mm.aueb.gr
Contact:

Re: integer to byte & byte to integer conversion

Post by tsilochr » Tue Apr 15, 2008 3:52 pm

παίρνει το 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άδες
User avatar
rose
Gbyte level
Gbyte level
Posts: 1921
Joined: Sun May 20, 2007 8:59 pm
Academic status: 4th year
Gender:

Re: integer to byte & byte to integer conversion

Post by rose » Tue Apr 15, 2008 4:24 pm

Thanks tsilochr.
που θα πάει θα το δουμε...
Post Reply

Return to “Προγραμματισμός”