import java.util.Scanner;
public class 位运算 {
public static void main(String[] args) {
/*位移运算
*
*/
Scanner sc=new Scanner(System.in);
while(true){
int n=sc.nextInt();
System.out.println("原始二进制数--------------"+Integer.toBinaryString(n)+"****十进制"+n);
//<<左移
int m=n<<4;
System.out.println("左移四位------------------"+Integer.toBinaryString(m)+"****十进制"+m);
//<<右移
int q=n>>4;
System.out.println("右移四位------------------"+Integer.toBinaryString(q)+"****十进制"+q);
//<<无符号移
int w=n>>>4;
System.out.println("无符号右移四位------------"+Integer.toBinaryString(w)+"****十进制"+w);
}
}
}
结果:
1
原始二进制数————–1****十进制1
左移四位——————10000****十进制16
右移四位——————0****十进制0
无符号右移四位————0****十进制0
-1
原始二进制数————–11111111111111111111111111111111****十进制-1
左移四位——————11111111111111111111111111110000****十进制-16
右移四位——————11111111111111111111111111111111****十进制-1
无符号右移四位————1111111111111111111111111111****十进制268435455
100
原始二进制数————–1100100****十进制100
左移四位——————11001000000****十进制1600
右移四位——————110****十进制6
无符号右移四位————110****十进制6
-100
原始二进制数————–11111111111111111111111110011100****十进制-100
左移四位——————11111111111111111111100111000000****十进制-1600
右移四位——————11111111111111111111111111111001****十进制-7
无符号右移四位————1111111111111111111111111001****十进制268435449