Y
Yoda
Gast
Hallo,
hab da mal ne Frage zum Schiebeorerator >>>=1. In dem Beispielprogramm wird jedes Bit der long Zahl um eins nach rechts verschoben. Auf der linken Seite wird immer einer Null nachgeschoben was gewährleistet das meine Zahl irgendwann null ist und das Programm somit auch terminiert.
Frage 1:
---------
Ich würd dieses Programm nun gerne in C++ umsetzen. Hier meckert meine Compiler aber sobalt ich den Operator >>>= 1 verwende. Wie kann ich ein rechtschieben in C++ so realisieren das auf der linken Seite eine Null nachrückt?
Frage 2:
---------
Der >>=1 Operator scheint auch in C++ zu funktionieren. Kann mir einer sagen ob ich diesen bedenkenlos genauso wie in Java verwenden kann ober ob das u.U. zu Problemen führen kann?
hab da mal ne Frage zum Schiebeorerator >>>=1. In dem Beispielprogramm wird jedes Bit der long Zahl um eins nach rechts verschoben. Auf der linken Seite wird immer einer Null nachgeschoben was gewährleistet das meine Zahl irgendwann null ist und das Programm somit auch terminiert.
Frage 1:
---------
Ich würd dieses Programm nun gerne in C++ umsetzen. Hier meckert meine Compiler aber sobalt ich den Operator >>>= 1 verwende. Wie kann ich ein rechtschieben in C++ so realisieren das auf der linken Seite eine Null nachrückt?
Frage 2:
---------
Der >>=1 Operator scheint auch in C++ zu funktionieren. Kann mir einer sagen ob ich diesen bedenkenlos genauso wie in Java verwenden kann ober ob das u.U. zu Problemen führen kann?
Code:
public class Einsen
{
public static void main(String args[])
{
long n, einsen;
System.out.print("Bitte geben Sie eine long-Zahl ein: ");
n = Einlesen.LiesLong();
System.out.print("Die Binaerdarstellung des long-Werts " + n);
einsen = 0;
while(n != 0)
{
if((n & 0x1) != 0)
einsen++;
n >>>= 1;
}
System.out.println(" enthaelt " + einsen + " Eins(en).");
}
}