国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

首頁 > 開發(fā) > Java > 正文

Java位掩碼控制權(quán)限與(&)或(|)非(~)、>的介紹

2024-07-14 08:43:37
字體:
供稿:網(wǎng)友

1. java 位掩碼

java 位掩碼,在java開發(fā)中很少有場景會用到掩碼,但是當(dāng)系統(tǒng)中需要判斷某個對象是否有 某些權(quán)限時,可以通過位掩碼來做。

位掩碼 主要通過位運算,例如與(&)、非(~)、或(|)、異或(^)、移位(<<和>>)等來實現(xiàn) 權(quán)限判斷功能。

1.1 簡單介紹一下位運算符(計算均為二進(jìn)制計算)

  • << : 左移運算符,num << 1,相當(dāng)于num乘以2
  • >> : 右移運算符,num >> 1,相當(dāng)于num除以2
  • >>> : 無符號右移,忽略符號位,空位都以0補(bǔ)齊
  • 異或(^ ): 一句話,相異為真 返回 boolean
  • 與(&): 只有兩位都為 1 則為真 ,0001 & 0101 也就是 0001
  • 或(|): 只要兩位有一位 為真則為真, 0001 | 0100,也就是0101
  • 非(~): 對自身取反。

    注意 非運算比較特殊 引用網(wǎng)上大神的解釋(如果看不懂就去翻翻計算機(jī)組成原理)在Java中,所有數(shù)據(jù)的表示方法都是以補(bǔ)碼的形式表示,如果沒有特殊說明,Java中的數(shù)據(jù)類型默認(rèn)是int,int數(shù)據(jù)類型的長度是8位,一位是四個字節(jié),就是32字節(jié),32bit.
    比如:~37
    37 轉(zhuǎn)為二進(jìn)制是100101

    補(bǔ)碼后為: 00000000 00000000 00000000 00100101
    取反為:   11111111 11111111 11111111 11011010

    因為高位是1,所以原碼為負(fù)數(shù),負(fù)數(shù)的補(bǔ)碼是其絕對值的原碼取反,末尾再加1。
    因此,我們可將這個二進(jìn)制數(shù)的補(bǔ)碼進(jìn)行還原: 首先,末尾減1得反碼:11111111 11111111 11111111 11011001 其次,將各位取反得原碼:
00000000 00000000 00000000 00100110,此時二進(jìn)制轉(zhuǎn)原碼為38
    所以~37 = -38.

2. 位掩碼控制權(quán)限

假設(shè) 在一個系統(tǒng)中,用戶有查詢(Select)、新增(Insert)、修改(Update)、刪除(Selete)四種權(quán)限使用掩碼 來控制和判斷這些權(quán)限。

代碼實現(xiàn):

package com.us.basics;/** * Created by yangyibo on 17/12/11. * 使用位掩碼的方式,只需要用一個大于或等于0且小于16的整數(shù)即可表示所有的16種權(quán)限的狀態(tài)。 */public class BitMask {  public static int ADD = 1 << 0; //1*2的0次方 的二進(jìn)制 0001  public static int DELETE = 1 << 1; //1*2的1次方 的二進(jìn)制 0010  public static int UPDATE = 1 << 2; //1*2的2次方 的二進(jìn)制 0100  public static int SELECT = 1 << 3; //1*2的3次方 的二進(jìn)制 1000  // 當(dāng)前狀態(tài)  private int currentStatus;  BitMask(int currentStatus) {    this.currentStatus = currentStatus;  }  /**   * 添加某個操作權(quán)限 通過或操作實現(xiàn)   * @param more   * @return   */  private BitMask append(int more) {    currentStatus = currentStatus | more;    return this;  }  /**   * 除去某個操作權(quán)限 通過非操作 和 與操作共同實現(xiàn)   * @param more   * @return   */  private BitMask delete(int more) {    // 如果非操作不好理解,可以理解為 減(-)操作也是可以的    // currentStatus = currentStatus - more;    currentStatus &= ~more;    return this;  }  /**   * 是否擁有某個權(quán)限 通過與運算判斷   * @param more   * @return   */  private boolean isPermission(int more) {    return (currentStatus & more) > 0 ;  }  public static void main(String[] args) {    BitMask bk = new BitMask(BitMask.DELETE);    //添加權(quán)限    bk.append(BitMask.ADD).append(BitMask.UPDATE);    bk.delete(BitMask.ADD);    // 判斷是否有 ADD 操作權(quán)限    System.out.println(bk.isPermission(BitMask.ADD));    test1();  }  /**   * 測試與   */  public static void test1() {    int a =5; //0101    int b =6; //0110    System.out.println(a&b); //輸出為 0100 為 4  }  /**   * 測試或   */  public static void test2() {    int a =5; //0101    int b =6; //0110    System.out.println(a|b); // 輸出為 0111 為 7  }  /**   * 測試非 可以理解為從 a 中減去 b   * ~5 取 5的補(bǔ)碼,正數(shù)的補(bǔ)碼 0101 ,為絕對值,其余位補(bǔ)零。然后取反 1010 ,最高位為 1 則為負(fù)數(shù),然后取其補(bǔ)碼,負(fù)數(shù)的補(bǔ)碼是其絕對值的原碼取反 0101 ,然后末尾+1 0110 所以為-6   * 非操作比較繞,可以理解為絕對值+1 并取負(fù)數(shù)   */  public static void test3() {    int a =5; //0101    System.out.println(~a); // 輸出為 -6  }}

本文源代碼:

https://github.com/527515025/JavaTest/blob/master/src/main/java/com/us/basics/BitMask.java

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對VeVb武林網(wǎng)的支持。


注:相關(guān)教程知識閱讀請移步到JAVA教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
久久香蕉一区| 久久av少妇| 国产一区二区三区四区尤物| 午夜在线视频| 青青草原av在线| 国产又色又爽又黄刺激在线视频| 青青艹在线视频| 天堂在线看视频| 中文字幕不卡| 亚洲图区综合| 国产乱子视频| 中文一区在线观看| 福利在线国产| 在线免费观看黄色片| 操操操综合网| 国产蜜臀av在线播放| 国产午夜电影| 一本大道久久精品| 国产免费视频在线| 国产高清视频在线| 久草网在线视频| 国产99在线|亚洲| 国产在线高清理伦片a| 国产激情自拍| 天天操天天射天天插| 国产精品剧情一区二区在线观看| av丝袜在线| 国产porn在线| 国产69精品久久久久孕妇国产69久久| 国产精品黄页网站在线播放免费| 亚洲国产精品区| 97视频网站| 国产午夜电影| 高清欧美精品xxxxx在线看| 伊人电影在线观看| 国产天堂在线播放视频| 国产麻豆视频| 国产卡1卡2卡三卡在线| 精品黄色免费中文电影在线播放| аⅴ成人天堂中文在线| 中文字幕av在线| 国产videos| 97视频在线观看网站| 国产精选在线观看| 麻豆精品免费视频入口| 麻豆福利在线观看| 蜜桃视频中文字幕| 免费网站看黄yyy222| www操操操| www.91在线播放| xxx国产精品| 青草av在线| 久久久久久77777| 欧美啪啪精品| 激情六月婷婷| 国产美女高潮一区二区三区| 国产乱xxⅹxx国语对白| 国产三级av在线| 国产精品18久久久久久久久久| 国产黄色片在线观看| 精品51国产黑色丝袜高跟鞋| 在线观看国产视频| 欧美视频免费一区二区三区 | 性国产高清在线观看| 爱福利在线视频| 国产探花视频在线观看| ·天天天天操| 亚洲精品白浆| 国产精品亚洲色图| 2019年中文字幕| 九九99精品| 国产激情99| 国产在线更新| 在线黄色国产电影| 国产理论电影在线观看| 国产精品剧情一区二区三区| 四虎一区二区三区| 国产一二三四| 青青久草在线| 国产精品粉嫩av| 久久综合精品视频| 精品国产高清a毛片无毒不卡 | 精品卡1卡2卡三卡免费网站| 久久久久久久美女| 99在线视频观看| 午夜国产福利在线| 亚洲成av人影片在线观看| 最新黄网在线观看| 日本一二区视频| 国产黄色小视频| 成在在线免费视频| 亚洲一区二区三区在线观看网站| 天堂亚洲精品| 狠狠狠综合7777久夜色撩人| 91www在线观看| 国产人成在线观看| 日本中文字幕在线视频| eeuss影院在线观看| 91中文字幕| 在线中文av| 伊人久久青青草| 亚洲天堂视频在线观看免费| 97视频网站| 亚洲国产aⅴ精品| av二区三区| 伊人222成人综合网| 亚洲天堂视频在线观看免费| 亚洲欧美精选| 六月天色婷婷| 91超碰国产在线| 国产日本在线| 性网站在线播放| 九色精品视频在线观看| 中文字幕一区二区三区免费视频| 国产农村一级特黄α**毛片 | 爱福利在线视频| 免费观看v片在线观看| 美女网站在线观看| 亚洲视频日韩| www.eeuss影院| 国产在线传媒| 国产精品毛片一区二区三区四区| 国产国产国产国产国产国产| 精品女厕厕露p撒尿| 碰草在线视频| 99色在线视频| 91国内精品久久久久| h网站免费在线观看| 国产视频福利| 日本成a人片在线观看| 久草视频国产| 99久久国产视频| 国产精品探花在线| 国产福利在线观看| 欧美精品日韩少妇| 精品一区二区三区免费站| 欧美韩日国产| 97一区二区三区| 国产美女在线观看| 夜夜爽夜夜操| 国产一二三区在线| 亚洲欧美久久婷婷爱综合一区天堂| 国产女人在线观看| а√天堂8资源在线官网| 国产精品被窝福利一区 | 国产精选在线观看| 日本精品一区二区三区在线播放| 99热在线观看免费| 国产中文伊人| 日本动漫同人动漫在线观看| 国产成免费视频| 五月亚洲综合| 福利在线视频导航| wwww在线观看免费视频| 国产成人福利| 国产精品久久在线| 国产呻吟对白刺激无套视频在线| 欧美日韩久久中文字幕| 热99re久久精品这里都是免费| 国产成人精品综合网站| 中文字幕乱在线伦视频乱在线伦视频 | 国产久草在线| 高清av在线| 黄色国产网站在线播放| 欧美日韩在线资源| 色吊丝av中文字幕| 日本综合一区二区三区| 欧美色第一页| 成年网在线观看免费观看网址| 国产在线一二| 国产三级免费观看| 国产福利在线播放麻豆| 国产精品久久久高清免费| 国产激情小视频在线| 国产视频福利| av网址在线播放| 久久亚洲天堂| 国产精品白浆视频免费观看| 精品一区二区三区在线成人| 亚洲精品少妇久久久久久| sm国产在线调教视频| 国产女人伦码一区二区三区不卡| 国产乱人视频免费播放| 国产精品被窝福利一区| 97人人在线| 国产永久在线观看| 国产香蕉尹人视频在线| 国产啊啊啊视频在线观看| 伊人网在线免费观看| 成年女人在线视频| 91欧美在线视频| 久久精品视频免费看| 国产精品777一区二区| a级片国产精品自在拍在线播放| 成人精品福利| 99中文字幕一区| 国产卡1卡2卡三卡在线| 夜夜操天天干| 国产高清视频在线| 精品孕妇一区二区三区|