將不確定變?yōu)榇_定~一切歸總為“二”(C#中的位運(yùn)算有啥用)
本文中的“二”,指的是二進(jìn)制,即看見2就進(jìn)一,也叫逢二進(jìn)一,它是最為簡單和清晰的數(shù)據(jù),在現(xiàn)實(shí)生活中,人們用的最多的就是十進(jìn)制數(shù)據(jù),即逢十進(jìn)一,看一下例子:
二進(jìn)制: 十進(jìn)制
0 0
01 01
10 02
11 03
100 04
看到了吧,在二進(jìn)制中,不會(huì)出現(xiàn)比1大的數(shù),除了0就是1,而在十進(jìn)制中,不會(huì)出現(xiàn)10,它由0~9這10個(gè)數(shù)字組成。
在我們的C#中,位運(yùn)算分為左位移和右位移,分別用<<和>>表示,左移相當(dāng)于向左移位,右面補(bǔ)0,例如:
10 << 1 它的含義是10 0,它最后的結(jié)果就是100,相當(dāng)于10進(jìn)制的4,這時(shí)我們難看出左移1位,相當(dāng)于乘2操作,返之還有右移,例如:
100 >> 1 它的結(jié)果就是010,它在左面進(jìn)行補(bǔ)0,右移后相當(dāng)于除2操作
通過這個(gè)特性,我們在設(shè)計(jì)具有位去處的Flags特性枚舉時(shí),可以這樣來做了
我們將它的值輸出看一下吧
結(jié)果如下:
總結(jié):事實(shí)上,在無論是十進(jìn)制還是十六進(jìn)制或八制的位運(yùn)算,計(jì)算器都會(huì)它將轉(zhuǎn)換成二進(jìn)制,然后再進(jìn)行位移的計(jì)算。



浙公網(wǎng)安備 33010602011771號(hào)