當前位置:編程學習大全網 - 網站源碼 - 算術移位為什麽會溢出?

算術移位為什麽會溢出?

取壹字節為例,能表示的數字從 -128 ~ 127\x0d\\x0d\先看正數,比如 9,就是 0000 1001,最高位(符號位)和數據最高位都是 0. 左移得到 0001 0010 也就是 18\x0d\再看負數 -9,就是 -(0000 1001) 也就是 1111 0110 + 1 即 1111 0111,最高位(符號位)和數據最高位都是 1. 左移後是 1110 1110,反過來是 (1110 1101 + 1)->0001 0010,就是 -18 了。\x0d\\x0d\如果數據最高位和符號位不同的話,說明這個數字的絕對值已經超過 64 了,那麽左移壹位後必然溢出。\x0d\所以壹個有效的左移最高位和數據最高位必然壹致。故算術左移和邏輯左移壹樣。

  • 上一篇:同花順二級大單凈額是什麽意思?
  • 下一篇:steam可以多開嗎
  • copyright 2024編程學習大全網