一手遮天 Android - java: 位操作

项目地址 https://github.com/webabcd/AndroidDemo
作者 webabcd

一手遮天 Android - java: 位操作

示例如下:

/java/BitDemo1.java

/**
 * 位操作
 */

package com.webabcd.androiddemo.java;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.util.Log;

import com.webabcd.androiddemo.R;

public class BitDemo1 extends AppCompatActivity {

    private final String LOG_TAG = "BitDemo1";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_java_bitdemo1);

        sample1();
    }

    // 或运算 |
    // 有一个为真则为真,比如 0101 | 0011 结果是 0111
    private void sample1() {
        // 合体
        Log.d(LOG_TAG, "1 | 2: " + (1 | 2)); // 结果是 3(1 和 2 合体为 3)
        Log.d(LOG_TAG, "1 | 4: " + (1 | 4)); // 结果是 5(1 和 4 合体为 5)
        Log.d(LOG_TAG, "2 | 4: " + (2 | 4)); // 结果是 6(2 和 4 合体为 6)

        // 分体
        Log.d(LOG_TAG, "6 & ~1: " + (6 & ~1)); // 结果是 6(从 6 中分出 1,但是 6 里面没有 1,所以结果还是 6)
        Log.d(LOG_TAG, "6 & ~2: " + (6 & ~2)); // 结果是 4(从 6 中分出 2,6 包含 2 和 4,所以结果为 4)
        Log.d(LOG_TAG, "6 & ~3: " + (6 & ~3)); // 结果是 4(从 6 中分出 3,6 包含 2 和 4,3 包含 1 和 2,所以会分出 2,所以结果为 4)
        Log.d(LOG_TAG, "6 & ~4: " + (6 & ~4)); // 结果是 2(从 6 中分出 4,6 包含 2 和 4,所以结果为 2)
        Log.d(LOG_TAG, "6 & ~5: " + (6 & ~5)); // 结果是 2(从 6 中分出 5,6 包含 2 和 4,5 包含 1 和 4,所以会分出 4,所以结果为 2)
        Log.d(LOG_TAG, "6 & ~6: " + (6 & ~6)); // 结果是 0(从 6 中分出自身,结果为 0)

        // 判断是否包含
        Log.d(LOG_TAG, "6 | 1: " + (6 | 1)); // 结果是 7(6 中不包含 1 所以结果不为自身)
        Log.d(LOG_TAG, "6 | 2: " + (6 | 2)); // 结果是 6(6 中包含 2 所以结果为自身)
        Log.d(LOG_TAG, "6 | 3: " + (6 | 3)); // 结果是 7(6 中不包含 3 所以结果不为自身)
        Log.d(LOG_TAG, "6 | 4: " + (6 | 4)); // 结果是 6(6 中包含 4 所以结果为自身)
        Log.d(LOG_TAG, "6 | 5: " + (6 | 5)); // 结果是 7(6 中不包含 5 所以结果不为自身)
        Log.d(LOG_TAG, "6 | 6: " + (6 | 6)); // 结果是 6(6 中包含自身,所以结果为自身)


    }
}

/layout/activity_java_bitdemo1.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

</LinearLayout>

项目地址 https://github.com/webabcd/AndroidDemo
作者 webabcd

posted @ 2021-05-31 12:03  webabcd  阅读(32)  评论(0编辑  收藏  举报