tft每日頭條

 > 圖文

 > 二進制運算

二進制運算

圖文 更新时间:2024-11-20 22:35:22

二進制是計算機技術中的一種進制,使用0和1來表示數據,進位的規則是逢二進一,二進制的運算有<<(左移)、>>(右移)、>>>(無符号右移)、與(&)、非(~)、或(|)、異或(^)。

首先說說移位

一、<<(左移)

  1. private static void a() {

  2. String binaryStr = "11010111";

  3. short binary = Short.valueOf(binaryStr,2);

  4. short left = (short) (binary << 1);

  5. String leftBinResult = Integer.toBinaryString(left);

  6. System.out.println(leftBinResult);//110101110 低位補0

  7. }

二、>>(右移)

  1. private static void b() {

  2. String binaryStr = "11010111";

  3. Short binary = Short.valueOf(binaryStr,2);

  4. short left = (short) (binary >> 1);

  5. String leftBinResult = Integer.toBinaryString(left);

  6. System.out.println(leftBinResult);//01101011 高位補0

  7. }

三、>>>(無符号右移)

  1. private static void c() {

  2. String binaryStr = "1010101011010111";

  3. Integer binary = Integer.valueOf(binaryStr,2);

  4. short left = (short) (binary >>> 1);

  5. String leftBinResult = Integer.toBinaryString(left);

  6. System.out.println(leftBinResult);//101010101101011

  7. }

通過以上代碼可以看出移位是怎麼移的,接下來看看與(&)、非(~)、或(|)、異或(^)。

  • 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

    五、或(|)

    1. private static void e() {

    2. String a = "33";

    3. String b = "44";

    4. Short sa = Short.valueOf(a, 10);

    5. Short sb = Short.valueOf(b,10);

    6. String aStr = Integer.toBinaryString(sa);

    7. String bStr = Integer.toBinaryString(sb);

    8. System.out.println(aStr);// 100001

    9. System.out.println(bStr);// 101100

    10. short result = (short) (sa | sb);

    11. System.out.println("| 運算結果:" Integer.toBinaryString(result));// 101101

    12. }

    | 或運算,隻要有一個數為1就是1,否則為0

    六、非(~)

    1. private static void f() {

    2. byte i = -1;// 1111 1111

    3. // i << 3 1111 1000

    4. byte a = (byte)~(i << 3);

    5. String result = Integer.toBinaryString(a);

    6. System.out.println(result);// 0000 0111

    7. }

    ~ 非運算,1則0,0則1

    七、異或(^)

    1. private static void g() {

    2. String a = "33";

    3. String b = "44";

    4. Short sa = Short.valueOf(a, 10);

    5. Short sb = Short.valueOf(b,10);

    6. String aStr = Integer.toBinaryString(sa);

    7. String bStr = Integer.toBinaryString(sb);

    8. System.out.println(aStr);// 100001

    9. System.out.println(bStr);// 101100

    10. short result = (short) (sa ^ sb);

    11. System.out.println("^運算結果:" Integer.toBinaryString(result));// 001101

    12. }

    ^或運算,相同為0,不同為1。

    最後感謝各位看官觀看本篇文章,如果覺得文章還行的話可以點點關注,我會經常分享,我們共同進步。

    二進制運算(二進制運算)1

    二進制

    ,

    更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

    查看全部

    相关圖文资讯推荐

    热门圖文资讯推荐

    网友关注

    Copyright 2023-2024 - www.tftnews.com All Rights Reserved