byte w formie stanów boolean

0

Witam chciał bym spytać czy jest jakaś prosta metoda by przetworzyć taka zmienną byte na kod 2jkowy tzn.

byte zmienna = 4; //taka liczba da nam: 00000100

jest to aż 8 stanów chciał bym taki ciąg zapisać Sobie do tablicy boolean lub integerow ewentualnie do Stringa jako ciąg takich właśnie znaków

0

Poszukaj na forum. Bywało wielokrotnie w wielu kontekstach.

0

Spróbuj metody Integer.toBinaryString(int).

0

Integer.toBinaryString(int); jest pewien problem z tym bo jak jest liczba minusowa to wypełnia do 32 liczb (uzupełnienia bit znaku) a jeśli nie jest to nie wypełnia.

Napisałem taką mała funkcje może komuś się przyda pytanie czy to jest optymalnie napisane? :) czy da się to jeszcze uprościć?

import javax.swing.JApplet;

public class Test95_daneBinarneKodowanie extends JApplet{
    @Override public void start(){
       System.out.println("start applet");    
       System.out.println("liczba 17 wypelniona do 6 miejsca od prawej --> "+format((byte) 17,6));
       System.out.println("liczba 4 wypelniona do 8 miejsca od prawej --> "+format((byte) 4,8));
    }

private int isBitSet(byte liczba, int bit)
{
    if ((liczba & (1 << bit)) != 0) {
        return 1;
    } else {
        return 0;
    }
}

private String format(byte liczba, int ileBitow)
{
    int itemp[] = new int[ileBitow];
    StringBuffer temp = new StringBuffer();
    //wypelniam tablice
    for (int xx=0;xx<ileBitow;xx++){
        itemp[xx] = isBitSet(liczba,xx);
    }
    //odwracam kolejnosc tablicy
    int ktory=ileBitow-1;
    int itemp2[] = new int[ileBitow];
    for (int xx=0;xx<ileBitow;xx++){
        itemp2[xx] = itemp[ktory];
        ktory--;
    }
    //sklejam tablice do pastaci stringa
    for (int xx=0;xx<ileBitow;xx++){
            temp.append(itemp2[xx]);
    }
    return temp.toString();
}

}

wynik:

liczba 17 wypelniona do 6 miejsca od prawej --> 010001
liczba 4 wypelniona do 8 miejsca od prawej --> 00000100

a w drugą strone jest łatwo :)

Integer.parseInt("1001", 2);

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