Salve a tutti
ho la necessità di trasformare una variabile byte su 8 bit codificati in Packed BCD in un intero, o comunque in un valore numerico. Qualcuno conosce qualche libreria che fa al caso mio, o devo provvedere a mano?
grazie
Salve a tutti
ho la necessità di trasformare una variabile byte su 8 bit codificati in Packed BCD in un intero, o comunque in un valore numerico. Qualcuno conosce qualche libreria che fa al caso mio, o devo provvedere a mano?
grazie
Avevo già trovato con google le soluzioni indicate, solo che non vanno bene in quanto in entrambi i casi i metodi sono per valori unsigned. Inoltre il primo link è per codici BCD e non Packed BCD e poi non mi convince tanto!
Non avrei mai messo un post sul forum senza aver prima cercato su google.
Se in java cerchi qualcosa che lavori direttamente su unsigned caschi male perché il tipo "unsigned" in java non esiste. Nei casi in cui hai la necessità di usare tipi unsigned devi provvedere al passaggio manualmante.
Dalla tua richiesta non si evince che già hai cercato, molti fanno al contrario: prima postano e poi cercano, scusami.
Ti posso dire prova ad usare qualcosa, se hai un analogo in codice nativo (o cmq in un linguaggio in cui hai l'unsigned) prova a dumpare l'input e l'output e vedi che succede
Ciao grazie per la risp
cmq il dato io lo prendo da un plc attraverso dde. In ogni caso la codifica è nota. Potrei fare una funzione per la conversione. Speravo solo ci fosse una bella funzioncina già bella e pronta. Mi sa che provvederò a mano.
Grazie ancora
ho fatto la funzione a mano
adesso il problema (in verità non è un problema) è che mi tronca sempre due bit quando converto 1byte in stringa. Mi prende sempre 6 bit troncando i due bit + significativi. Immagino lo faccia perché sono due 0 (e lo saranno sempre perché da standard), quindi non pesano sulla conversione. E' possibile invece fare in modo che mantenga tutti gli 8 bit? La conversione la faccio così:
byte[] bytes = new byte[]{b[i]};
BigInteger bi = new BigInteger(bytes);
String s=bi.toString(2);
dovrebbe, non sono sicura.
Se ti interessano valori di 8 byte usa il padding, in modo da mettere i 2 bit più significativi a zero e lavorare su elementi con dim standard