簡體   English   中英

整數(x86)的最大大小是多少?

[英]What is the maximum size of an integer (x86)?

我將把VC ++ 2008升級到VC ++ 2010或2012。在升級之前,我有一些問題:

  • 我的編譯器僅支持最大的__int64整數。 VC ++ 2010、2012等版本是否支持__int128

  • 我當前的編譯器不支持_WIN64_WIN32類的_WIN64來檢查Windows平台。 但是我懷疑_INTEGRAL_MAX_BITS是另一種解決方案。 如果在Win32中運行它將是64 ,否則將是128 是真的嗎

在C ++標准中,有一個專門針對您想要的內容的部分,總之有<limits>以及所包含的方法可以解決您的問題。

編輯:我假設您想要某種標准化的支持,否則您應該只參考編譯器的在線文檔

對於您提到的所有編譯器,對於32位和64位目標都存在64位整數類型。 但是,沒有128位整數類型。 因此,對於所有列出的編譯器以及32位和64位目標, _INTEGRAL_MAX_BITS計算結果均為64。

最好的辦法可能是使用SSE2內部__m128i但這取決於處理器上是否存在SSE2單元。 但是您無需升級即可使用它。 它也可以在VS2008中使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM