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!