Salve a tutti. Avevo una domanda forse stupida ... allora, sostanzialmente, mi stavo dedicando ad esercizio didattico (per un ragazzo a cui sto dando una mano) in Java che però non ne vuole sapere di funzionare a dovere. Sostanzialmente il testo diceva di creare una classe bit e una classe byte (composta OBBLIGATORIAMENTE da un array di 8 oggetti di tipo bit) e successivamente di svolgere alcune operazioni su di esso. Tutto funziona a parte il metodo che dovrebbe fare lo shift (non essendo specificato quale, ho ipotizzato fosse lo shift destro senza segno) ma il tutto mi aggiunge uno zero in più e non riesco a capire perchè ... qualcuno mi può dare una mano?
L'oggetto bit è definito semplicemente con una variabile booleana e i metodi per settare a 1 o a 0 la variabile, mentre l'ggetto byte e la funzione incriminata sono definiti in questo modo:
Grazie in anticipo, ciao!codice:public class Byte { public Bit[] Byte; public Byte() { Byte = new Bit[8]; //Inizializzo tutti i bit a 0 (il costruttore di Bit lo setta a 0 se non sono passati argomenti alla creazione) per testare un'altra funzione che ho omesso for (int i = 0; i < 8; i++) {Byte[i] = new Bit();} } public void shift() { //Faccio un ciclo a ritroso per spostare tutti i valori di un posto, a parte l'ultimo che va perso for (int i = 6; i >= 0; i--) { this.Byte[i + 1] = this.Byte[i]; } //Imposto a zero il primo bit this.Byte[0].ReSet(); } }

Rispondi quotando