計算題解析
一、變量a是一個64位有符號的整數,初始值用16進製表示爲:0xf000 0000 0000 0000;變量b是一個64位有符號的整數,初始值用16進製表示爲:0x7FFF FFFF FFFF FFFF。則a-b的結果用10進製表示爲多少?2^62+2^61+2^60+1
- 首先,我們可以得出:0x7FFF FFFF FFFF FFFF + 1 = 0x8000 0000 0000;
- 因此:0x7FFF FFFF FFFF FFFF = 0x8000 0000 0000 - 1;
a - b = 0xf000 0000 0000 0000 - ( 0x8000 0000 0000 - 1 )
= 0xf000 0000 0000 0000 - 0x8000 0000 0000 + 1
= 0x7000 0000 0001
= 7 * 16^15 + 1 * 16 ^ 0
= 7 * 2 ^ 60 + 1
= ( 2 ^ 2 +2 ^ 1+ 2 ^ 0) * 2 ^ 60 + 1
= 2 ^ 62 + 2 ^ 61 + 2 ^ 60 + 1
二、已知 i = 5,int s = (i++) + (++i) + (i- -) + (- -i);s = ()//s的值是什麼?
- i ++ :i 先參與運算,再 加 1;++i:i 先加 1,再參與運算
s = (i++) + (++i) + (i- -) + (- -i)
= ( 5 ) + ( ++6 ) + ( 7-- ) + ( --6 )
= 5+7+7+5
= 24