• <noscript id="ecgc0"><kbd id="ecgc0"></kbd></noscript>
    <menu id="ecgc0"></menu>
  • <tt id="ecgc0"></tt>

    什么是整數溢出(Integer Overflow)?

    整數溢出是指在某些計算機數據類型中,當它們到達其適用范圍的末端時,它們的符號從正變為負,或反之亦然。在計算機范圍中,整數數據類型具有循環范圍,當它們達到其范圍的一端時,它們會立即移動到其范圍的另一端。這也稱為整數...
    整數溢出是指在某些計算機數據類型中,當它們到達其適用范圍的末端時,它們的符號從正變為負,或反之亦然。在計算機范圍中,整數數據類型具有循環范圍,當它們達到其范圍的一端時,它們會立即移動到其范圍的另一端。這也稱為整數溢出。C沒有顯式的數組邊界檢查。有符號整數可以包含-231到(231)-1之間的值范圍。此整數的值不能為(-231)-1;相反,它遞增到的下一個數字是在其范圍的另一端:(231)-1).在其范圍的末尾從負變為正是整數溢出的一個例子。同樣地,一個整數的值不能是231;這個值會切換到它的范圍的另一端變成-231。這個溢出在編程時會產生嚴重的后果。一個數組只能在整數類型允許,負索引不計算在內。如果程序員試圖創建一個大于整數類型允許的數組,則可能會發生嚴重的內存錯誤,因為整數溢出會導致負索引。這在沒有顯式數組邊界檢查的語言中尤其危險,與C一樣,當發生整數溢出時,也會發生相關類型的溢出,如緩沖區溢出、堆溢出和堆棧緩沖區溢出。在所有這些情況下,整數溢出會用比這些結構所能容納的更多的數據來覆蓋內存結構。這些溢出,在簡單的程序中,除了引起無效的讀或寫錯誤外,不要做太多的事情。然而,黑客對這個問題的處理會導致內存錯誤,從而導致更嚴重的問題。在大多數簡單的程序中,整數溢出不是主要問題整數類型的限制足夠大,除非同時處理大量數據,否則溢出問題不會起作用。在某些情況下,可以通過使用更大范圍的更大數據類型來緩解溢出,如遞增計數器的情況。理論上,較大的數據類型可以,最終會遇到同樣的溢出問題,但隨著數據類型范圍的增大,出現這種情況的可能性也會越來越小。每個整數數據類型范圍的大小至少是下一個最小值的兩倍,因此有足夠的空間存儲額外的數據
    • 發表于 2020-08-07 13:24
    • 閱讀 ( 1506 )
    • 分類:電腦網絡

    你可能感興趣的文章

    相關問題

    0 條評論

    請先 登錄 后評論
    admin
    admin

    0 篇文章

    作家榜 ?

    1. xiaonan123 189 文章
    2. 湯依妹兒 97 文章
    3. luogf229 46 文章
    4. jy02406749 45 文章
    5. 小凡 34 文章
    6. Daisy萌 32 文章
    7. 我的QQ3117863681 24 文章
    8. 華志健 23 文章

    推薦文章

    聯系我們:uytrv@hotmail.com 問答工具
  • <noscript id="ecgc0"><kbd id="ecgc0"></kbd></noscript>
    <menu id="ecgc0"></menu>
  • <tt id="ecgc0"></tt>
    久久久久精品国产麻豆