array - größe

  • Themenstarter Themenstarter MisterX
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
M

MisterX

Gast
Hi, ich habe eine Aufgabe zu lösen in der ich eine eingebene zahl in eine duale umwandeln muss. Nun möchte ich das Ergebnis in einem Array abspeichern. Das Problem ist das ich nicht vorher weiss wie groß das Array sein wird.
Wie geht man da am besten vor?
Großes Array anlegen und zähler mitlaufen lassen? So weiß ich wieviele Zahlen befüllt worden sind.
??
 
Da die Eingabe vermutlich nur int oder long ist, tut's notfalls auch ein Array mit 32 bzw. 64 Elementen.... je nachdem...
 
Hi, ich habe eine Aufgabe zu lösen in der ich eine eingebene zahl in eine duale umwandeln muss.
Integer.toBinaryString(number), oder selbst bauen:
Code:
public class Binary
{
	private final int number;
	
	public Binary(int number)
	{
		this.number = number;
	}
	
	public String toString()
	{
		char[] a = new char[32];
		int x = number;
		for (int i = 31; i >= 0; --i)
		{
			a[i] = (char) ('0' + (x & 1));
			x >>>= 1;
		}
		return new String(a);
	}
}
 
suche nach Binäroperatoren in Verbindung mit Java

& 1 fragt nur das erste Bit ab
>>> verschiebt um 1 Bit nach rechts
 
ah ok ty. Hab ein paar Probe-beispiele gemacht und es verstanden. Nur eine Sache ist unklar.

Wo ist der unterschied zwischen

x >>>= 1 und x>>=1

und wieso geht x<<<=1 nicht?
 
a << n schiebt die Binärdarstellung einer Zahl a um n Stellen nach links, entspricht einer Multiplikation mit 2 hoch n.
a >> n schiebt die Binärdarstellung einer Zahl a um n Stellen nach rechts, entspricht einer Ganzzahldivision durch 2 hoch n (außer bei a = -1).
a >>> n ist das gleiche wie a >> n, allerdings wird das Vorzeichen nicht berücksichtigt, was bei negativen Zahlen Murks rauskommen lässt. Dafür ist diese Verschiebung logisch (die andere ist arithmetisch).

Bitweiser Operator ? Wikipedia

Ark
 
und wieso geht x<<<=1 nicht?
naja, welchen sinn soll so ein "x <<< n" operator machen? Für alle n>=1 wird das vorzeichen durch <<< mindestens um 1 nach links verschoben(oder eben halt überschrieben) und verschwindet... Wenn es verschwindet, kann es doch egal sein, ob es vorher als bit oder als numerisches vorzeichen behandelt wird.
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben