zoukankan      html  css  js  c++  java
  • 一手遮天 Android

    项目地址 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

  • 相关阅读:
    闭包
    内置函数
    595926265989859
    C错题集锦
    C中改变指针的指向
    /dev/zero
    define的高级用法
    (转)Linux ./configure --prefix命令
    (转)linux下tty,控制台,虚拟终端,串口,console(控制台终端)详解
    内核驱动模块的Makefile模板
  • 原文地址:https://www.cnblogs.com/webabcd/p/android_java_BitDemo1.html
Copyright © 2011-2022 走看看