Abdujaparov
06-07-2010, 11:26
Ciao a tutti ho un long da 64 bit. Di questi 64 bit, i primi 15 numeri più a destra rappresentano un id, i successivi 9 bit rappresentano un altro campo ecc ecc a gruppi di nove.
Per isolare il primo gruppo di 9 bit ho utilizzato una maschera in questo modo:
final String mask = "111111111000000000000000";
long mdb= (solutionID & Long.valueOf(mask, 2));
Dove solutionID è il long da 64bit iniziale.
A sua volta il campo di 9 bit è formato da tre gruppi di bit, da destra verso sinistra:
-minor number ->2bit
-major number ->2it
-cicle ->5bit
Al numero mdb applico altre tre maschere per estrarre i valori elencati:
-"11"
-"1100"
-"111110000"
Applico le maschere analogamente a quanto fatto sopra.
Purtroppo, però, in uscita ottengo valori un pò farlocchi. Volevo capire se è il problema è dovuto ad un mio errato calcolo o il problema è nel dato di ingresso.
Grazie a tutti, ciao ciao.
Per isolare il primo gruppo di 9 bit ho utilizzato una maschera in questo modo:
final String mask = "111111111000000000000000";
long mdb= (solutionID & Long.valueOf(mask, 2));
Dove solutionID è il long da 64bit iniziale.
A sua volta il campo di 9 bit è formato da tre gruppi di bit, da destra verso sinistra:
-minor number ->2bit
-major number ->2it
-cicle ->5bit
Al numero mdb applico altre tre maschere per estrarre i valori elencati:
-"11"
-"1100"
-"111110000"
Applico le maschere analogamente a quanto fatto sopra.
Purtroppo, però, in uscita ottengo valori un pò farlocchi. Volevo capire se è il problema è dovuto ad un mio errato calcolo o il problema è nel dato di ingresso.
Grazie a tutti, ciao ciao.