第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

左移位負(fù)移位計(jì)數(shù)

左移位負(fù)移位計(jì)數(shù)

C
蠱毒傳說 2019-09-03 15:29:24
這到底發(fā)生了什么?a << -5顯然它沒有正確轉(zhuǎn)變。但我正在閱讀的這本書指出:在一臺(tái)機(jī)器上,這個(gè)表達(dá)式實(shí)際上是左移27位我的問題是; 為什么?什么原因?qū)е?7位左移?在使用負(fù)移位計(jì)數(shù)換檔時(shí)會(huì)發(fā)生什么?謝謝。
查看完整描述

3 回答

?
守候你守候我

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超10個(gè)贊

右側(cè)的負(fù)整數(shù)是C語言中未定義的行為。

ISO 9899:2011 6.5.7逐位移位運(yùn)算符:

對每個(gè)操作數(shù)執(zhí)行整數(shù)提升。結(jié)果的類型是提升的左操作數(shù)的類型。如果右操作數(shù)的值為負(fù)或大于或等于提升的左操作數(shù)的寬度,則行為未定義


查看完整回答
反對 回復(fù) 2019-09-03
?
江戶川亂折騰

TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超5個(gè)贊

正如其他成員已經(jīng)回答的那樣,它會(huì)產(chǎn)生未定義的行為。我想在這里提一下,你引用這本書(“在一臺(tái)機(jī)器上”)似乎是偏袒的。它沒有概括行為。該書也可能已經(jīng)解釋了該行為未按照標(biāo)準(zhǔn)定義。順便說一句,我剛剛通過“新C標(biāo)準(zhǔn) - 經(jīng)濟(jì)和文化評論”并發(fā)現(xiàn)了這一說法:

英特爾奔騰SAL指令(由gcc和Microsoft C ++生成以評估左移)僅使用移位量的后五位

這很好地解釋了為什么-5的左移可能導(dǎo)致左移27(對于負(fù)數(shù)的2的補(bǔ)碼表示)


查看完整回答
反對 回復(fù) 2019-09-03
?
LEATH

TA貢獻(xiàn)1936條經(jīng)驗(yàn) 獲得超7個(gè)贊

int main()

{

    unsigned int a = 1;

    printf("%u\n",a<<(-1));

    return 0;

}

輸出為2147483648。


這是我的假設(shè)和驗(yàn)證:(只是假設(shè)?。?/p>


1.“<<”右操作數(shù)必須是unsigned int類型,


首先,(int)“-1”將被轉(zhuǎn)換為(unsigned int)“ - 1”。原因int類型是二進(jìn)制補(bǔ)碼表示,結(jié)果將是2 ^ 32-1(unsigned int)


2.由于數(shù)字2 ^ 32-1大于最大位移數(shù)字,2 ^ 32 - 1將是mod 32,等于27


我還嘗試了一些其他的nagetive右操作數(shù),并且?guī)в屑俣ㄒ?guī)則的手動(dòng)計(jì)算結(jié)果與我的IDE的產(chǎn)品相同。


我試圖找到一些支持的官方文件,女巫可以證實(shí)我的假設(shè)是否正確。也許你可以告訴我。


查看完整回答
反對 回復(fù) 2019-09-03
  • 3 回答
  • 0 關(guān)注
  • 535 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號