V tomto poněkud kratším textu si ukážeme, jak z bajtu vypsat jednotlivé bity. Jak jistě každý ví, tak bajt má 8 bitů. Ukážeme si jednoduchý algoritmus, který by se mohl podobně implementovat ve více jazycích (až na malé změny..). Samozřejmě budeme tento kód zapisovat v jazyce Java.

Implementace do Javy
Vytvoříme si statickou metodu, která nám bude vracet objekt typu String - textový řetězec.
public static String bits(byte b) {
StringBuffer buffer = new StringBuffer();
for(int i = 128;i > 0; i = i / 2) {
if((b & i) != 0)
buffer.append('1');
else
buffer.append('0');
}
return buffer.toString();
}
Jak vidíte, velice snadná metoda. Jen vytvoříme instanci třídy StringBuffer, do které budeme průběžně ukládat jedničky a nuly v cyklu, který následuje hned po ní. Poté jen vracíme výsledný String.
Dejme tomu, že ve stejné třídě, jako jsme vytvořili tuto statickou metodu se nachází i metoda main(). Pak by samotné volání metody mohlo vypadat například takto:
public static void main(String[] args) {
byte byt = 2;
System.out.println(bits(byt));
}
V tomto případě by byl výpis - 00000010

2009-03-25 15:04:24
Tady by bylo možná vhodnější použít bitový posun jako se to diskutuje zde: http://www.coderanch.com/t/412032/Java-General-beginner/java/bit-from-byte. Kód v Groovy by vypadal nějak takto: http://www.clipboard.cz/9rj
2009-03-28 12:15:06
to Anon47: Pravda. Použít bitový posun mě nějak nenapadlo. Každopádně díky za příspěvek ;)