日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

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

發布時間:2025/3/21 C# 62 豆豆
生活随笔 收集整理的這篇文章主要介紹了 按位与 matlab,c# 按位与,按位或 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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

首先每一個權限數都是2的N次方數

如:k1=2 ; //添加

k2=4 ; //刪除

k3=8; //修改

...

如此定義功能權限數,當需要組合權限時,就需要對各個所擁有的權限數按位或了。

如:

purview = k2|k3; // 賦給添加和刪除權限

當需要判斷在權限串中是否擁有某一權限時,就需要進行按位與。

如:

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

{

....

}

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

第一,2的8位二進制值為00000010

4的8位二進制值為00000100

8的8位二進制值為00001000

第二,當對8和4進行按位或操作后,結果為:

4|8 = 12

00000100 |00001000 = 00001100

為什么會是這樣呢?在進行按位或操作時 00000001|00000001=00000001?? ;00000001|00000000=1 ;00000000|00000000=00000000

也就是說除了0|0結果是0外,其它運算結果的都是1

所以??? 00000100 |00001000 = 00001100

也就說上面的 purview = k2|k3 的二進制值結果是 purview =00000100 |00001000 =00001100了

第三,當對8和4進行按位與操作后,結果為:

4&8=0

00000100 &00001000 = 00000000

同樣為什么會是這樣呢?在進行按位與操作時 00000001&00000001=00000001?? ;00000001&00000000=00000000 ;00000000&00000000=00000000

也就是說除了1&1結果是1外,其它運算結果的都是0

所以 00000100 &00001000 = 00000000

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

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

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

///

/// 計算權限總和

///

/// 數據庫現有權限總和

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

/// 設置操作對應的狀態值

///

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

{

int NewStatus = OldStatus;

if (Action == 1)

{

//判斷此權限串是否擁有相應操作,不包括時加入權限

if ((OldStatus & StatusVal) <= 0)

{

NewStatus = OldStatus | StatusVal;

}

}

else

{

//判斷此權限串是否擁有相應操作,有權限時移除權限

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;右移運算符

//按位與運算& 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 位運算&lpar;移位、位與、或、異或、非)

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

InstallShield 腳本語言學習筆記

InstallShield腳本語言是類似C語言,利用InstallShield的向導或模板都可以生成基本的腳本程序框架,可以在此基礎上按自己的意愿進行修改和添加. ????一.基本語法規則 ???? ...

簡簡單單學會C&num;位運算

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

js中的位運算

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

從0到1,教你實現基于Ruby的watir-webdriver自動化測試

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

C&plus;&plus;程序設計——知識點總結

C++程序設計課程的總結,方便以后快速查閱和復習 Week 2 從C走進C++ 函數指針 函數名是函數的入口地址,指向函數的指針稱為"函數指針". 比如,qsort庫函數: voi ...

隨機推薦

IOS之--UI進階--多控制器管理第一天

01-項目中常見的文件(LaunchScreen) Xcode5 框架是蘋果事先已經導入進去的.在項目的結構當中就能夠看到導入的框架. Xcode6 會自動導入一些覺見的框架.在項目結構當中,看不到已 ...

團體程序設計天梯賽-練習集L1-003&period; 個位數統計

L1-003. 個位數統計 時間限制 400 ms 內存限制 65536 kB 代碼長度限制 8000 B 判題程序 Standard 作者 陳越 給定一個k位整數N = dk-1*10k-1?+ . ...

centos curl web站點監控實踐

1,監控給定web站點的狀態--站點請求返回代碼,下載整個web站點頁面文本到-o 指定的文本 curl -o /dev/null -s-silent -w--wirte-out "%{ht ...

oracle系統參數修改

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

將 子集和問題 運行時間從 200&period;8s 優化到 0&period;4s

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

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

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

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

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

HDU 4821 String(BKDRHash)

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

QPainter繪制特殊線條

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

設計模式-生成者模式之c&num;代碼

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

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。