無符號整數的算術運算
email:778138708@qq.com
無符號整數的表示范圍
- 一個8位無符號二進制數,表示范圍為:0000 0000B ~ 1111 1111B,0 ~ 28 - 1(0 ~ 255),00H ~ FFH
- 一個16位無符號二進制數,表示范圍為:00000000 00000000B ~ 11111111 11111111B,0 ~ 216 - 1(0 ~ 65535),0000H ~ FFFFH
算術運算溢出判斷
例 計算1010 1011B + 1101 0010B = (?)B
10101011B = 171D
11010010B = 210D
171D + 210D = 381D
- 運算結果101111101B是9位,超出了8位二進制數的取值范圍(0000 0000B ~ 1111 1111B),則最高位被丟棄,這導致運算結果錯誤,計算機中將這種情況稱為溢出。兩個16位二進制數相加,結果有可能超出16位二進制數的取值范圍(0000H ~ FFFFH),導致最高位被丟棄,運算結果溢出。
- 在無符號數的加減運算中,如果最高位向前有進位(加法)或借位(減法),則運算結果產生溢出。
- 在計算機中,如果加減運算中最高位向前有進位或借位,將使微處理器標志寄存器中的CF位置1。