巧用位運算存狀態

2019獨角獸企業重金招聘Python工程師標準>>> hot3.png

某種場景需要,一個事物 有多種狀態并列存在的時候,或者權限,我們可以使用 |,&,~ 來處理,具體代碼如下:??

package com.example.demo;/*** 權限狀態處理*/
public class StatusUtil {/*** 判斷狀態是否開啟* @param flag* @param status* @return bool*/public static boolean isEnable(int flag, int status) {return (flag & status) == status;}/*** 判斷狀態是否關閉* @param flag* @param status* @return bool*/public static boolean isDisable(int flag, int status) {return (flag & status) == 0;}/*** 判斷是否只有這個狀態開啟* @param flag* @param status* @return*/public static boolean isOnlyEnable(int flag, int status) {return flag == status;}/*** 添加狀態* @param flag* @param status* @return*/public static int addStatus(int flag, int status) {return flag |= status;}/*** 扣除狀態* @param flag* @param status* @return*/public static int deductStatus(int flag, int status) {return flag & ~status;}
}
package com.example.demo;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class DemoApplication {// 初始public static final int init = 1 << 0;// 權限1public static final int power1 = 1 << 1;// 權限2public static final int power2 = 1 << 2;// 權限3public static final int power3 = 1 << 3;//權限4public static final int power4 = 1 << 4;public static void main(String[] args) {SpringApplication.run(DemoApplication.class, args);int status=init;//添加權限1status= StatusUtil.addStatus(status,power1);//判斷是否具有權限1System.out.println( StatusUtil.isEnable(status,power1));//判斷是否具有權限2System.out.println( StatusUtil.isEnable(status,power2));//添加權限2status= StatusUtil.addStatus(status,power2);//判斷是否具有權限2System.out.println( StatusUtil.isEnable(status,power2));//解除權限1status=  StatusUtil.deductStatus(status,power1);//判斷是否具有權限1System.out.println( StatusUtil.isEnable(status,power1));//判斷是否具有權限2System.out.println( StatusUtil.isEnable(status,power2));}
}

?

轉載于:https://my.oschina.net/ToFlySeif/blog/2873595

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/537527.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/537527.shtml
英文地址,請注明出處:http://en.pswp.cn/news/537527.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

工時單位天與人天的區別?

售前工作時&#xff0c;向甲方提供報價單是必需的&#xff0c;報價要有依據。 當提供的報價單的工時單位是&#xff08;人/天&#xff09;的時候&#xff0c;需要向甲方額外解釋下&#xff0c;人/天人數*天數。比如&#xff1a;編碼開發&#xff0c;40人天&#xff0c;投入1位…

python怎么做項目_聽說你沒有python項目可做,我教你個方法

原標題&#xff1a;聽說你沒有python項目可做&#xff0c;我教你個方法 學習了一段時間的Python&#xff0c;最近出現了“饑荒”&#xff0c;感覺需要多看些代碼&#xff0c;多學習學習別人做些什么&#xff0c;但卻不知道做點什么來進行練習。 說到看代碼&#xff0c;我就想到…

Linux系統CPU相關信息查詢

Linux系統CPU相關信息查詢 作者&#xff1a;尹正杰 版權聲明&#xff1a;原創作品&#xff0c;謝絕轉載&#xff01;否則將追究法律責任。 一.lscpu常用參數介紹 1>.查看幫助信息 [rootnode105 ~]# lscpu -h-a, –all: 包含上線和下線的cpu的數量&#xff0c;此選項只能與選…

excel下拉讓函數參數部分不變

原理 使用相對引用就會變&#xff0c;bai使用絕對引用du就不變 A1是相對引用&#xff0c;上下拉公式的時候會zhi變成A2,A3…… $A$1是行列絕對引用dao&#xff0c;上下拉公式的時候不會變化 $A1&#xff0c;是行絕對引用&#xff0c;上下拉公式的時候會變化&#xff0c;$A2&am…

select * 排除字段_編寫 SQL 的排除聯接

有兩個表&#xff0c;就叫作源表和目標表吧。它們有一個相同的字段&#xff0c;通過該字段可以把源表和目標表關聯在一起&#xff0c;我們希望從源表中檢索到的記錄里的關聯字段的值沒有存在目標表中。舉個例子&#xff0c;源表 dept&#xff0c;目標表 emp&#xff0c;獲取 de…

JS中調用bignumber處理高精度小數運算

ignumber.js用于數字精度要求較高的計算。 bignumber.js源碼地址&#xff1a;https://github.com/MikeMcl/bignumber.js 1.下載bignumber.js。 下載地址&#xff1a;https://github.com/MikeMcl/bignumber.js/releases 2.引入js。 3.示例 html: <div><label>數1&am…

centos8安裝搜狗輸入法_搜狗拼音輸入法去廣告版

搜狗輸入法是搜狗公司2006年6月推出的一款漢字輸入法工具。與傳統輸入法不同&#xff0c;搜狗輸入法是第一款為互聯網而生的輸入法——它通過搜索引擎技術&#xff0c;將互聯網變成了一個巨大的“活”詞庫。應該有許多人電腦上都裝了吧&#xff0c;不過一般下載的版本天天彈廣告…

Project查看資源分配情況

選擇 資源圖表&#xff0c;點擊 格式&#xff0c;在圖表里選擇

webbrowser實現input tab事件_如何合理構造一個Uploader工具類(設計到實現)

作者&#xff1a;Chaser (本文來自作者投稿) 原文地址&#xff1a;https://juejin.im/post/5e5badce51882549652d55c2源碼地址&#xff1a;https://github.com/impeiran/Blog/tree/master/uploader前言本文將帶你基于ES6的面向對象&#xff0c;脫離框架使用原生JS&#xff…

小達人點讀筆的任我貼貼紙怎么使用?

小達人點讀筆是一款高性能、高容量點讀筆。其自身的開放性、共享性、傳播性讓可讀書籍及音頻資源真正的達到了海量且優質有用。 下面我們來認識一下標配中任我貼上的貼紙&#xff1a; 智能貼 用于已經布有二維碼的有聲圖書的封面&#xff0c;比如律動英語&#xff0c;成長一線&…

vscode必備插件_10個必備的Visual Studio Code (VS code)插件

我基本上每天都用vs code&#xff0c;我喜歡的小巧&#xff0c;開源&#xff0c;免費并且非常強大。尤其它非常多的插件可以免費使用。這里我把經常用插件介紹給大家&#xff0c;希望大家留言討論我把VS code 插件分兩類&#xff0c;一類是處理可視化的&#xff0c;比如說顏色&…

軟考官方教材:信息系統項目管理師教程(第三版)

2020年下半年信息系統項目管理師考試官方教材將繼續使用清華大學出版社出版的信息系統項目管理師教程第3版&#xff08;特別注意&#xff0c;有某些輔導資料也打著信息系統項目管理師教程第3版的旗號&#xff0c;各位考生一定要看準官方指定教材是由全國計算機專業技術資格考試…

centos掛載windows共享目錄

2019獨角獸企業重金招聘Python工程師標準>>> 在windows中創建一個共享文件夾記住這個網絡路徑&#xff0c; 在centos上新建文件夾/mnt/MyShare $> mkdir /mnt/MyShare掛載 username用戶名.password登錄密碼 $> Sudo mount -t cifs -o username用戶名,pass…

博閱likebook alita專用pdf制作

適合博閱likebook alita帶手寫的。 先上效果圖&#xff0c;左邊是正文&#xff0c;右邊有留白可以寫讀書筆記 這樣做有什么好處&#xff1f; pdf從閱讀器里復制出來&#xff0c;在電腦打開&#xff0c;筆記也會有。筆記是直接記錄在pdf上的&#xff0c;相當于pdf上的批注。 …

esc鍵沒反應_有機人名反應——Brown 硼氫化反應(Brown Hydroboration)

Brown 硼氫化反應&#xff08;Brown Hydroboration&#xff09;反應機理鏈接&#xff1a;http://chem.kingdraw.cn/Shortlink?id20200624161301Brown硼氫化反應&#xff0c;是指乙硼烷在醚類溶液中離解成的甲硼烷以B-H鍵與烯烴、炔烴的不飽和鍵加成&#xff0c;生成有機硼化合…

利用IDisposable接口構建包含非托管資源對象

托管資源與非托管資源 在.net中&#xff0c;對象使用的資源分為兩種&#xff1a;托管資源與非托管資源。托管資源由CLR進行管理&#xff0c;不需要開發人員去人工進行控制&#xff0c;.NET中托管資源主要指“對象在堆中的內存”&#xff1b;非托管資源指對象使用到的一些托管內…

修改Navicat數據庫自動備份目錄

1.右鍵連接&#xff0c;選擇“編輯連接” 2. 選擇“高級”&#xff0c;設置位置

python圖形界面編程庫_Python支持哪些圖形界面的第三方庫

Python支持哪些圖形界面的第三方庫 發布時間&#xff1a;2020-11-09 10:37:56 來源&#xff1a;億速云 閱讀&#xff1a;58 作者&#xff1a;小新 這篇文章給大家分享的是有關Python支持哪些圖形界面的第三方庫的內容。小編覺得挺實用的&#xff0c;因此分享給大家做個參考。一…

成為中國特色項目經理,走上人生巔峰

今天是秋分&#xff0c;寫在項目經理6周年的總結 落葉知秋&#xff0c;情誼如酒&#xff0c;風漸涼時有喜無憂&#xff1b; 歲月流走&#xff0c;驀然回首&#xff0c;一聲問候醇綿依舊&#xff1b; 有情相守&#xff0c;不離左右&#xff0c;含笑送出這份問候。 -----------…

python中括號的作用_Python3--中括號[]與冒號:在列表中的作用

先來定義兩個列表: liststr ["helloworld","hahahh","123456"] listnum [1,2,3,4,5,6] 這兩個列表都可以看懂吧,一個字符串組成的列表,一個數字組成的列表 中括號"[]"的作用 : 用于定義列表或引用列表、數組、字符串及元組中元素位置…