二進制是計算機技術中的一種進制,使用0和1來表示數據,進位的規則是逢二進一,二進制的運算有<<(左移)、>>(右移)、>>>(無符号右移)、與(&)、非(~)、或(|)、異或(^)。
首先說說移位
一、<<(左移)
private static void a() {
String binaryStr = "11010111";
short binary = Short.valueOf(binaryStr,2);
short left = (short) (binary << 1);
String leftBinResult = Integer.toBinaryString(left);
System.out.println(leftBinResult);//110101110 低位補0
}
二、>>(右移)
private static void b() {
String binaryStr = "11010111";
Short binary = Short.valueOf(binaryStr,2);
short left = (short) (binary >> 1);
String leftBinResult = Integer.toBinaryString(left);
System.out.println(leftBinResult);//01101011 高位補0
}
三、>>>(無符号右移)
private static void c() {
String binaryStr = "1010101011010111";
Integer binary = Integer.valueOf(binaryStr,2);
short left = (short) (binary >>> 1);
String leftBinResult = Integer.toBinaryString(left);
System.out.println(leftBinResult);//101010101101011
}
通過以上代碼可以看出移位是怎麼移的,接下來看看與(&)、非(~)、或(|)、異或(^)。
private static void d() {
String a = "33";
String b = "44";
Short sa = Short.valueOf(a, 10);
Short sb = Short.valueOf(b,10);
String aStr = Integer.toBinaryString(sa);
String bStr = Integer.toBinaryString(sb);
System.out.println(aStr);// 100001
System.out.println(bStr);// 101100
short result = (short) (sa & sb);
System.out.println("&運算結果:" Integer.toBinaryString(result));// 100000
}
&與運算同1為1,不同為0
五、或(|)
private static void e() {
String a = "33";
String b = "44";
Short sa = Short.valueOf(a, 10);
Short sb = Short.valueOf(b,10);
String aStr = Integer.toBinaryString(sa);
String bStr = Integer.toBinaryString(sb);
System.out.println(aStr);// 100001
System.out.println(bStr);// 101100
short result = (short) (sa | sb);
System.out.println("| 運算結果:" Integer.toBinaryString(result));// 101101
}
| 或運算,隻要有一個數為1就是1,否則為0
六、非(~)
private static void f() {
byte i = -1;// 1111 1111
// i << 3 1111 1000
byte a = (byte)~(i << 3);
String result = Integer.toBinaryString(a);
System.out.println(result);// 0000 0111
}
~ 非運算,1則0,0則1
七、異或(^)
private static void g() {
String a = "33";
String b = "44";
Short sa = Short.valueOf(a, 10);
Short sb = Short.valueOf(b,10);
String aStr = Integer.toBinaryString(sa);
String bStr = Integer.toBinaryString(sb);
System.out.println(aStr);// 100001
System.out.println(bStr);// 101100
short result = (short) (sa ^ sb);
System.out.println("^運算結果:" Integer.toBinaryString(result));// 001101
}
^或運算,相同為0,不同為1。
最後感謝各位看官觀看本篇文章,如果覺得文章還行的話可以點點關注,我會經常分享,我們共同進步。
二進制
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!