日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

按位与 matlab,c# 按位与,按位或

發(fā)布時(shí)間:2025/3/21 68 豆豆
生活随笔 收集整理的這篇文章主要介紹了 按位与 matlab,c# 按位与,按位或 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

在工作中遇到按位或組合權(quán)限串。一直不是特別明白。今天終于花了半個(gè)下午的時(shí)間搞明白其中的道理。

首先每一個(gè)權(quán)限數(shù)都是2的N次方數(shù)

如:k1=2 ; //添加

k2=4 ; //刪除

k3=8; //修改

...

如此定義功能權(quán)限數(shù),當(dāng)需要組合權(quán)限時(shí),就需要對各個(gè)所擁有的權(quán)限數(shù)按位或了。

如:

purview = k2|k3; // 賦給添加和刪除權(quán)限

當(dāng)需要判斷在權(quán)限串中是否擁有某一權(quán)限時(shí),就需要進(jìn)行按位與。

如:

if((purview & k1) >0)//判斷此權(quán)限串是否擁有添加權(quán)限,結(jié)果>0 則進(jìn)入if語句代碼塊中

{

....

}

說到這里肯定會有疑問了,別急我來細(xì)細(xì)講解。

第一,2的8位二進(jìn)制值為00000010

4的8位二進(jìn)制值為00000100

8的8位二進(jìn)制值為00001000

第二,當(dāng)對8和4進(jìn)行按位或操作后,結(jié)果為:

4|8 = 12

00000100 |00001000 = 00001100

為什么會是這樣呢?在進(jìn)行按位或操作時(shí) 00000001|00000001=00000001?? ;00000001|00000000=1 ;00000000|00000000=00000000

也就是說除了0|0結(jié)果是0外,其它運(yùn)算結(jié)果的都是1

所以??? 00000100 |00001000 = 00001100

也就說上面的 purview = k2|k3 的二進(jìn)制值結(jié)果是 purview =00000100 |00001000 =00001100了

第三,當(dāng)對8和4進(jìn)行按位與操作后,結(jié)果為:

4&8=0

00000100 &00001000 = 00000000

同樣為什么會是這樣呢?在進(jìn)行按位與操作時(shí) 00000001&00000001=00000001?? ;00000001&00000000=00000000 ;00000000&00000000=00000000

也就是說除了1&1結(jié)果是1外,其它運(yùn)算結(jié)果的都是0

所以 00000100 &00001000 = 00000000

上面的if((purview & k1) >0)的結(jié)果就是 00001100&00000010 =00000000 也就是(0>0)=false

同樣if((purview & k2) >0)的結(jié)果就是 00001100&00000100 =00000100=4=k2 也就是 (4>0)=true

這樣我們就理解組合權(quán)限串和判斷權(quán)限的原理了,說白了就是對2N次方數(shù)的按位與和按位或。

///

/// 計(jì)算權(quán)限總和

///

/// 數(shù)據(jù)庫現(xiàn)有權(quán)限總和

/// 取消或設(shè)置操作(0取消,1設(shè)置)

/// 設(shè)置操作對應(yīng)的狀態(tài)值

///

public static int ReturnStatusTotal(int OldStatus, int Action, int StatusVal)

{

int NewStatus = OldStatus;

if (Action == 1)

{

//判斷此權(quán)限串是否擁有相應(yīng)操作,不包括時(shí)加入權(quán)限

if ((OldStatus & StatusVal) <= 0)

{

NewStatus = OldStatus | StatusVal;

}

}

else

{

//判斷此權(quán)限串是否擁有相應(yīng)操作,有權(quán)限時(shí)移除權(quán)限

if ((OldStatus & StatusVal) > 0)

{

NewStatus = OldStatus & ~StatusVal;

}

}

return NewStatus;

}

NewStatus = CommonUtilities.ReturnStatusTotal(OldStatus, objRequest.Action, (int)StatusEnum.ZhiDing);

Java&lowbar;按位與&amp&semi;&comma;按位或&comma;取反&comma;左移&comma;右移運(yùn)算符

//按位與運(yùn)算& System.out.println(0&0);//0 System.out.println(0&1);//0 System.out.println(1&am ...

按位與(&amp&semi;)和按位或(&vert;)

/** * 按位與 : & * 按位或 : | */ public class Demo { /** * 按位與: 為什么(5 & 9)的值等于1 * 按位或: 為什么(5 | 9)的 ...

Java 位運(yùn)算&lpar;移位、位與、或、異或、非)

Java提供的位運(yùn)算符有:左移( <>?) .無符號右移(?>>>?) .位與(?&?)?.位或( |?).位非(?~?).位異或( ...

InstallShield 腳本語言學(xué)習(xí)筆記

InstallShield腳本語言是類似C語言,利用InstallShield的向?qū)Щ蚰0宥伎梢陨苫镜哪_本程序框架,可以在此基礎(chǔ)上按自己的意愿進(jìn)行修改和添加. ????一.基本語法規(guī)則 ???? ...

簡簡單單學(xué)會C&num;位運(yùn)算

一.理解位運(yùn)算 要學(xué)會位運(yùn)算,首先要清楚什么是位運(yùn)算?程序中的所有內(nèi)容在計(jì)算機(jī)內(nèi)存中都是以二進(jìn)制的形式儲存的(即:0或1),位運(yùn)算就是直接對在內(nèi)存中的二進(jìn)制數(shù)的每位進(jìn)行運(yùn)算操作 二.理解數(shù)字進(jìn)制 上面 ...

js中的位運(yùn)算

按位運(yùn)算符是把操作數(shù)看作一系列單獨(dú)的位,而不是一個(gè)數(shù)字值.所以在這之前,不得不提到什么是"位": 數(shù)值或字符在內(nèi)存內(nèi)都是被存儲為0和 1的序列,每個(gè)0和1被稱之為1個(gè)位,比如說10 ...

從0到1,教你實(shí)現(xiàn)基于Ruby的watir-webdriver自動化測試

一.為什么選擇Ruby []完全開源. []多平臺:Ruby可以運(yùn)行在Linux, UNIX, Windows, MS-DOS, BeOS, OS/.. []多線程:線程就是指在一個(gè)程序中處理若干控制 ...

C&plus;&plus;程序設(shè)計(jì)——知識點(diǎn)總結(jié)

C++程序設(shè)計(jì)課程的總結(jié),方便以后快速查閱和復(fù)習(xí) Week 2 從C走進(jìn)C++ 函數(shù)指針 函數(shù)名是函數(shù)的入口地址,指向函數(shù)的指針稱為"函數(shù)指針". 比如,qsort庫函數(shù): voi ...

隨機(jī)推薦

IOS之--UI進(jìn)階--多控制器管理第一天

01-項(xiàng)目中常見的文件(LaunchScreen) Xcode5 框架是蘋果事先已經(jīng)導(dǎo)入進(jìn)去的.在項(xiàng)目的結(jié)構(gòu)當(dāng)中就能夠看到導(dǎo)入的框架. Xcode6 會自動導(dǎo)入一些覺見的框架.在項(xiàng)目結(jié)構(gòu)當(dāng)中,看不到已 ...

團(tuán)體程序設(shè)計(jì)天梯賽-練習(xí)集L1-003&period; 個(gè)位數(shù)統(tǒng)計(jì)

L1-003. 個(gè)位數(shù)統(tǒng)計(jì) 時(shí)間限制 400 ms 內(nèi)存限制 65536 kB 代碼長度限制 8000 B 判題程序 Standard 作者 陳越 給定一個(gè)k位整數(shù)N = dk-1*10k-1?+ . ...

centos curl web站點(diǎn)監(jiān)控實(shí)踐

1,監(jiān)控給定web站點(diǎn)的狀態(tài)--站點(diǎn)請求返回代碼,下載整個(gè)web站點(diǎn)頁面文本到-o 指定的文本 curl -o /dev/null -s-silent -w--wirte-out "%{ht ...

oracle系統(tǒng)參數(shù)修改

create pfile='/home/oracle/sss.ora' from spfile; create spfile from pfile='/home/oracle/sss.ora'; al ...

將 子集和問題 運(yùn)行時(shí)間從 200&period;8s 優(yōu)化到 0&period;4s

在過去24小時(shí)里,一直被這題折騰著... 題目: A Math gameTime Limit: 2000/1000MS (Java/Others) Memory Limit: 256000/12800 ...

Oracle中對XMLType的簡單操作(extract、extractvalue&period;&period;&period;)

Oracle中對XMLType的簡單操作(extract.extractvalue...) ? ?1.下面先創(chuàng)建一個(gè)名未test.xml的配置文件. <?xml version="1. ...

前后端分離djangorestframework——限流頻率組件

頻率限制 什么是頻率限制 目前我們開發(fā)的都是API接口,且是開房的API接口.傳給前端來處理的,也就是說,只要有人拿到這個(gè)接口,任何人都可以通過這個(gè)API接口獲取數(shù)據(jù),那么像網(wǎng)絡(luò)爬蟲的,請求速度又快, ...

HDU 4821 String(BKDRHash)

http://acm.hdu.edu.cn/showproblem.php?pid=4821 題意:給出一個(gè)字符串,現(xiàn)在問你可以找出多少個(gè)長度為M*L的子串,該子串被分成L個(gè)段,并且每個(gè)段的字符串都是 ...

QPainter繪制特殊線條

參考資料: https://www.cnblogs.com/Jace-Lee/p/5946342.html 效果圖: 代碼: void WgtText::paintEvent(QPaintEvent ...

設(shè)計(jì)模式-生成者模式之c&num;代碼

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

總結(jié)

以上是生活随笔為你收集整理的按位与 matlab,c# 按位与,按位或的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。