48 lines
949 B
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
|
|
*/
|
|
|
|
|
|
|