Program zamieniający liczbę na postać bitową

0
public class glowna {
int liczba;


public int getLiczba() {
        return liczba;
}
public void setLiczba(int liczba) {
        this.liczba = liczba;
}
public void konwertowanie(int liczba)
{
        int tablica_wynikowa[] = new int[7];
        int liczba_potęgi =8;
        int wynik_potęgi;
        int licznik_tablicy= 0;
        for(int i=0; i==8; i++)
        {
                liczba_potęgi--;
                licznik_tablicy++;
                wynik_potęgi = (int) Math.pow(2,liczba_potęgi);
                if(liczba>wynik_potęgi)
                {
                        tablica_wynikowa[licznik_tablicy] =1;
                }
                else
                {
                        tablica_wynikowa[licznik_tablicy] =0;
                }
  }
        for(int i=0; i==tablica_wynikowa.length;i++)
        {
                System.out.println(tablica_wynikowa[i]);
        }
}
        
        public static void main(String[] args) {
                glowna konwerter = new glowna();
                konwerter.konwertowanie(63);
                

        }

}

Gdzie jest błąd?
Chodzi mi o takie działanie programu:

  • Podaję liczbę z zakresu 0-255
    -Program wyświetla liczbę w postaci bitowej 11111111
    SZYBKO
1

Błąd to jest dopuścić cię do komputera. Cała ta funkcja konwertowanie() jest źle napisana. Czy ty w ogóle rozumiesz co chciałes zrobić?

def convert(number):
	power = get_max_power(number)
	resultList = []
	for i in range(8):
		resultList.append(number/power)
		number-=(number/power)*power
		power/=2
	return resultList
	
def get_max_power(number):
	p = 0
	while number/2 > 0:
		p+=1
		number/=2
	return 2**p
	
print convert(254)

To ci zadziała uniwersalnie, nawet dla liczb > 255. Ale jak chcesz tylko do 255 to wywal funkcje get_max_power() a zamiast tego wpisuj tam zawsze 128.

1 użytkowników online, w tym zalogowanych: 0, gości: 1