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:
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();
}
}
Grazie in anticipo, ciao!