我整明白,它改變了位在什麼是左,右移位位運算符的使用>><<和
0000 0000 0000 0000 0000 0000 0000 0111 << 1
0000 0000 0000 0000 0000 0000 0000 1110
但是,你爲什麼要使用這些左和右移位運算符代替只是輸入數字,哪些使用這些操作員實際上有好處。
我看到很多#2回答,哪些運營商來完成的,但從來沒有人說他們爲什麼會使用它在只輸入了12345
所以就像我說的,爲什麼使用它們,什麼是他們的利益在剛鍵入號碼你試圖得到什麼?
我碰到這個代碼就在瀏覽GitHub上一包:
// ClientVersion is the protocol version that Client implements.
const ClientVersion = 1<<16 | 3<<8 | 0
其中數出來是:66304
因此,如果這是一個常量,爲什麼不直接輸入const ClientVersion = 66304
爲什麼使用運營商。
好處是程序員可以即時查看和維護版本號(16.3.0)。 (我假設每個主要/次要/補丁版本都有8位字段)。如果版本號更改,編譯器將處理計算。數字66304告訴我們什麼都沒有,我們必須解析它來找出嵌入的領域。 – BraveNewCurrency
爲了防止任何人感到困惑,我確信@BraveNewCurrency意味着(1.3.0)的邏輯版本,這是將semver編碼爲一個小整數的一種非常好的方式。 – JimB
哎呀,你是對的。 – BraveNewCurrency