整数的运算
無(wú)符號(hào)數(shù)加法
對(duì)滿足0 =< x, y<2w的x和y有:
例如:無(wú)符號(hào)數(shù)65535 + 1 為10000000000000000,由于超過(guò)16位,所以截?cái)嗪?~15位都是0,因此結(jié)果為0
結(jié)果為0
?
補(bǔ)碼加法運(yùn)算
補(bǔ)碼加法運(yùn)算就是先按照無(wú)符號(hào)加法進(jìn)行運(yùn)算,而后在進(jìn)行無(wú)符號(hào)和有符號(hào)的轉(zhuǎn)換
?
對(duì)滿足?-2w-1??<= x,y <= 2w-1-1的整數(shù)x和y,?有:
例如:-35768 + (- 1)要先把兩個(gè)數(shù)轉(zhuǎn)換為無(wú)符號(hào)數(shù),進(jìn)行運(yùn)算后再轉(zhuǎn)為有符號(hào)數(shù)
結(jié)果為2147483647
無(wú)符號(hào)數(shù)乘法
將一個(gè)無(wú)符號(hào)數(shù)截?cái)酁閣位等價(jià)于計(jì)算該值摸2w
結(jié)果為65534
補(bǔ)碼乘法
將一個(gè)補(bǔ)碼數(shù)截?cái)酁閣位相當(dāng)于先計(jì)算該值摸2w,再把無(wú)符號(hào)數(shù)轉(zhuǎn)換為補(bǔ)碼
補(bǔ)碼乘法相當(dāng)于先計(jì)算兩個(gè)值的乘積,再將該值模2w,再把無(wú)符號(hào)數(shù)轉(zhuǎn)換為補(bǔ)碼
結(jié)果為
0
14
?
乘以常數(shù)
左移一個(gè)數(shù)值等于執(zhí)行一個(gè)與2的冪相乘的無(wú)符號(hào)乘法,低位補(bǔ)0
除以常數(shù)
除以 2 的冪可以用向右移位來(lái)運(yùn)算,無(wú)符號(hào)除法使用邏輯移位,補(bǔ)碼除法使用算術(shù)移位
?
轉(zhuǎn)載于:https://www.cnblogs.com/zzdbullet/p/9618051.html
總結(jié)
- 上一篇: [ BZOJ 2456 ] Mode
- 下一篇: VS 调试断点命中了,程序无法再断点处中