Próbuję zapisać numer jako ciąg binarny w tablicy, ale muszę określić, ile bitów do przechowywania go jako.(Java) Podaj liczbę bitów (długość) podczas konwersji liczby binarnej na ciąg?
Na przykład, jeśli potrzebuję przechowywać 0 z dwoma bitami, potrzebuję ciągu "00". Lub 1010 z 6 bitami, więc "001010".
Czy ktoś może pomóc?
EDIT: Dzięki, chłopaki, ponieważ jestem marnością w matematyce/programowaniu w ogóle, poszedłem z najprostszym rozwiązaniem, które było Davidem. Coś jak:
binaryString.append(Integer.toBinaryString(binaryNumber));
for(int n=binaryString.length(); n<numberOfBits; n++) {
binaryString.insert(0, "0");
}
Wydaje się działać prawidłowo, więc chyba jest to bardzo nieefektywne Pójdę z nim.
To nie zadziała z liczbami ujemnymi i liczbą s są większe niż 2^31, ponieważ nie mieszczą się wewnątrz Integer Java. BigInteger automatycznie zmienia rozmiar bitów, których używa do przechowywania wartości. Nadal możesz użyć metody wypełniania, aby wstawić przed sobą 0. –
Niestety, nie wiedziałem o przyjęciu znaku towarowego. Dziękuję Fernando, ale nie sądzę, że będę musiał to zrobić w przypadku liczb ujemnych lub czegokolwiek większego niż 2^16, więc powinno być ok. Zgaduję. Na wszelki wypadek przyjrzę się BigIntegerowi. – joinJpegs