PR1/TestProgs/BitShift.java

48 lines
949 B
Java

public class BitShift{
public static void main(String[] args){
int r;
int rr;
int l;
//Eingabe
int n = Integer.parseInt(args[0]);
//Berechnung
// >> Schiebt von links nach rechts, bei der letzten 1. Vorzeichenbit wird beachtet
r = n >> 1;
System.out.println("Arithmetische Bit-Verschieibung nach rechts ( / 2): " + r);
// << schiebt von recht nach links Nullen auf, Vorzeichenbit wird beachtet
l = n << 1;
System.out.println("Arithmetische Bit-Verschieibung nach links ( * 2): " + l);
// >>> schiebt ab Stelle 2^32 Nullen auf, Vorzeichenbits werden nicht beachtet
rr = n >>> 1;
System.out.println("Logische Bit-Verschieibung nach rechts: " + rr);
}
}
/*
3. Bei negativen Zahlen wird das Ergebnis bei der logischen Bitverschiebung sehr groß, da durch die vorherige Invertierung alle vorausgehender 0 zu 1 wurden.
Bsp.: -8
Gibt man jedoch eine beliebige postiive Zahl ein, sind die Ergbnisse gleich.
Bsp.: 6
*/