亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

請教一下關于|和&的使用

請教一下關于|和&的使用

PHP
FFIVE 2019-03-13 06:56:25
經常看到一些系統的源碼或者c的源碼,如下: #define R 1 #define B 2 #define C 4 #define D 8 run_some_function(R|B|C); 定義的時候均使用了2的某次方,使用的時候,使用|或者&組合,有哪位大神能詳細講解一下這里面的原理么?
查看完整描述

2 回答

?
波斯汪

TA貢獻1811條經驗 獲得超4個贊

補充樓上
這種二進制且(&)或(|)的操作是在設置標志位(flag)
通過樓上你可以發現 0-f 每個數都可以看做是四位二進制
通過不同數字的且或操作 會映射到一個最終的四位二進制上
即這個二進制串上哪些位是0 哪些是1

比如說
我們規定

_ _
0位定義為選項A
1位定義為選項B
...

那么
0100
的意思就是 只打開選項B 其他保持關閉

所以只要設計好某個十六進制/十進制數對應的開關意思
那么你對它們的任意組合到最后都可以被作為一個二進制串去解析你打開了哪些標志位

查看完整回答
反對 回復 2019-03-18
?
慕碼人8056858

TA貢獻1803條經驗 獲得超6個贊

1 0001
2 0010
4 0100
8 1000

0001 | 0010 = 0011

后面不用我說了吧!

補全吧還是

1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
8 1000
9 1001
a 1010
b 1011
c 1100
d 1101
e 1110
f 1111

查看完整回答
反對 回復 2019-03-18
  • 2 回答
  • 0 關注
  • 393 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號