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, botów: 0