Co prawda już to zrobiłeś, wiec może ku potomności ;)
----
public class Bits {
public static void main(String[] args) {
byte[] bytes = new Bits().run("Man");
for (byte b : bytes) {
System.out.println(toBinaryStr(b));
}
}
byte[] run(String inStr) {
byte inBytes[] = inStr.getBytes();
int newArrSize = (int) Math.ceil(4.0 / 3 * inStr.length());
byte outBytes[] = new byte[newArrSize];
StringBuilder allBytesStr = new StringBuilder();
for (byte b : inBytes) {
allBytesStr.append(toBinaryStr(b));
}
int i = 0;
while (allBytesStr.length() > 0) {
int leftChars = Math.min(allBytesStr.length(), 6);
outBytes[i] = Byte
.parseByte(allBytesStr.substring(0, leftChars), 2);
allBytesStr.delete(0, leftChars);
i++;
}
return outBytes;
}
static String toBinaryStr(byte b) {
StringBuilder outStr = new StringBuilder(Integer.toBinaryString(b));
while (outStr.length() < 8) {
outStr.insert(0, "0");
}
return outStr.toString();
}
}
----
Jak masz coś znacząco innego (czytaj zgrabniejszego;)), to wrzuć,
chętnie spojrzę :)
Pzdr.,
M.
2008/9/16 Vexator <santa...@gmail.com>:
p.s. jakiego typu ma być zmienna tmp?
tmp = bajt[0] + (bajt[1] * 256) + (bajt[2] * 256 * 256)
Właśnie chciałem zaproponować, stringi, a nie zmienną liczbową - bo
tej szybko skończyłby się zakres...
Co prawda już to zrobiłeś, wiec może ku potomności ;)
a co z łączeniem tabel?
Będzie się za tobą ciągnął problem deklaracji rozmiaru tablic jeśli ich
rozmiar (lub ograniczenie) nie wynika z logiki programu. Ja bym poważnie
rozważył wykorzystanie w twoim projekcie zamiast tabel interfejsu List w
implementacji ArrayList (jeśli jest sporo operacji indeksowania). Wiele
operacji takich jak np. powyższa obsługiwane są natywnie.
Pozdro
Kuba