關(guān)于'<<'左移運(yùn)算符

在閱讀源碼的過(guò)程中碰到了“7<<16”,小白,看不懂,然后去百度,知道這是左移運(yùn)算符,繼續(xù)看下去,發(fā)現(xiàn)小小的運(yùn)算符里,大有學(xué)問(wèn),這里我就不一一贅述了,只是想說(shuō)一些皮毛,以便記憶。在iOS的宏定義里,尤其需要注意運(yùn)算符的優(yōu)先級(jí)順序。附送貓神宏定義黑魔法傳送門

運(yùn)算符的優(yōu)先級(jí)

指針最優(yōu),單目運(yùn)算優(yōu)于雙目運(yùn)算。如正負(fù)號(hào)。
先算術(shù)運(yùn)算,后移位運(yùn)算,最后位運(yùn)算,邏輯運(yùn)算最后計(jì)算。
(位運(yùn)算符:& ^ | )
請(qǐng)?zhí)貏e注意:
1 << 3 + 2 && 7等價(jià)于 (1 << (3 + 2))&&7.

表達(dá)式

單目運(yùn)算 > 雙目運(yùn)算 > 三目運(yùn)算( a ? b : c)
指針 > 算術(shù)運(yùn)算 > 位移運(yùn)算 > 位運(yùn)算 > 邏輯運(yùn)算

衍生問(wèn)題

從位移運(yùn)算符中衍生出來(lái)的一些問(wèn)題
在計(jì)算機(jī)中,一個(gè)字節(jié)占8bit,也就是說(shuō)一個(gè)字節(jié)占8位(00000000),一個(gè)漢字是2個(gè)字節(jié),也就是占16位。而nsinteger在不同的系統(tǒng)中,占的位數(shù)也不同。(傳送門

在32位系統(tǒng)中

int 占4個(gè)字節(jié)
long 占4個(gè)字節(jié)
NSInteger 是int的別名,占4個(gè)字節(jié)
long long 占8個(gè)字節(jié)
int32_t 是int的別名,占4個(gè)字節(jié)
int64_t 是long long的別名,占8個(gè)字節(jié)

在64位系統(tǒng)中

int 占4個(gè)字節(jié)
long 占8個(gè)字節(jié)
NSInteger 是long的別名,占8個(gè)字節(jié)
long long 占8個(gè)字節(jié)
int32_t 是int的別名,占4個(gè)字節(jié)
int64_t 是long long的別名,占8個(gè)字節(jié)

由于long和NSInteger的字節(jié)數(shù)變了,在做系統(tǒng)兼容的時(shí)候可能會(huì)導(dǎo)致溢出,所以在兼容32位和64位系統(tǒng),使用int, long long(或者int32_t,int64_t)這樣的數(shù)據(jù)類型比使用NSInteger可靠得多。

貓神獎(jiǎng)勵(lì)

以下是貓神宏定義黑魔法的獎(jiǎng)勵(lì),僅作記錄,以備不時(shí)之需。

#define NSLogRect(rect) NSLog(@"%s x:%.4f, y:%.4f, w:%.4f, h:%.4f", #rect, rect.origin.x, rect.origin.y, rect.size.width, rect.size.height)
#define NSLogSize(size) NSLog(@"%s w:%.4f, h:%.4f", #size, size.width, size.height)
#define NSLogPoint(point) NSLog(@"%s x:%.4f, y:%.4f", #point, point.x, point.y)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 內(nèi)置類型的發(fā)展 C語(yǔ)言開始時(shí)只有char(8位)和int(16位)兩種,后來(lái)隨著發(fā)展又加入了short(16位)和...
    MichaelLedger閱讀 8,272評(píng)論 0 3
  • 一 閨蜜的老公在家開了個(gè)?巴西柔術(shù)館。 我們經(jīng)常聊天,我偶爾也會(huì)問(wèn)問(wèn)柔術(shù)館經(jīng)營(yíng)的怎么樣。 暑假里閨...
    我是花生媽閱讀 998評(píng)論 0 4
  • 內(nèi)聯(lián)元素居中方案 水平居中設(shè)置: 行內(nèi)元素 設(shè)置text-align:center;Flex布局 設(shè)置displa...
    Air丹閱讀 379評(píng)論 0 0
  • 想獨(dú)自一人走走,希望時(shí)光可以慢一點(diǎn),讓我慢慢體會(huì)你的芬芳;想獨(dú)自一個(gè)人走走,看著路上的車水馬龍,希望時(shí)間就定格在那...
    1234蝸牛閱讀 179評(píng)論 0 0
  • 近年來(lái),隨著中醫(yī)治癌理念,及實(shí)踐贏得人們的青睞與信任,很多病人在西醫(yī)治療走不通的情況下,選擇藥性溫和,提出“帶瘤生...
    ab2827c4486b閱讀 382評(píng)論 0 0

友情鏈接更多精彩內(nèi)容