ACM中關於 int64與long long的區別

時間 2021-10-17 02:37:57

1樓:匿名使用者

因為我們用的系統都是32位,所以在編譯器中,int是32位,long long和__int64都是64位的,因此用哪個都行,相信我!你的問題出在,不論是long long還是__int64,如果你用printf輸出,都必須用printf("%i64d\n",a)表示,千萬不能用lld,用lld肯定錯,你用cout就不會有這個困擾,這也就是為什麼用cout能ac的原因。同理,建議你scanf最好你也別用lld,用%i64d。

2樓:曉子文集

long long 在不同的系統中長度不一樣。c語言有這樣的約定:sort 兩個位元組,long 四個位元組,int 則處在兩者之間並隨編譯器不同而不同。

沒有直接對long long 定義,因而它的長度也是變化的(四個或八個位元組)。而__int64 則是64位的。然而,__int64 也是沒有直接定義的。

在有些編譯器中__int64 不可用(例如 eclipse),而有些編譯器中 long long 不可用(例如 visual c++6.0)。所以我們在編譯程式時應當先熟悉(可以使用sizeof() 來測試)編譯器。

3樓:匿名使用者

我感覺是 scanf("%lld",&識別符號 ); 有問題,你可以用 "%ld" 試一下。

既然你用的是c++,那麼你可以用 cin 來接收輸入的資料。

還有,並不是所有變數都需要64位來儲存。

4樓:孟孟起

long long 是32位的,__int64是64位的

他們的數的範圍不一樣啊

__int64 範圍更大

5樓:匿名使用者

__int64與long long 都是在32位平臺開始使用的64位整數的資料型別,在儲存方式和使用方式上沒有區別。

兩者的區別在於,它們命名的發起人不同,支援的平臺不同。long long這個資料型別,是unix平臺發起並支援的,而__int64是微軟從win95(vc6)開始發起並支援的,在老的windows開發平臺下(如vc6),不識別long long,而老的unix,也不識別_int64。當然,現在比較新的平臺,兩種資料格式和相關的定義、函式都可以相容了。

同樣,作為64位整數的printf輸出格式定義,也是一樣,微軟使用的是%i64d,而unix使用的是%lld以及%llu(無符號64位)等形式。

實際上,無論哪一種,在實際效果上沒有不同,只是因為定義者和使用環境造成的支援或不支援的問題。

而acm中,編譯識別系統偏向更多的支援微軟系統的定義,因此應該使用__int64和%i64d

c++中什麼時候用__int64定義變數?和int型有什麼區別?

6樓:

對於32位系統而言,int型是32位的。

__int64型是用兩個32位型拼出來的64位資料型別。

7樓:匿名使用者

int 和 long 型為 32 位整型,其範圍為 -2g(-21億多)至 2g(+21億多),若需要計算的整數超出此範圍,則需要使用 __int64 型別,此型別為 64位整數,其範圍非常大,一般不會超出範圍。

8樓:匿名使用者

當你作業系統是64位時,用_int64不過現在一般都是32位的,所以這個基本用不著。

vb中cint與int區別,VB中CInt與Int區別

一 主體不同 1 cint 返回表示式,此表示式已被轉換為 integer 子型別的 variant。2 int 整數資料型別的資料 是表示某種數學整數 範圍的資料型別。二 處理過程不同 1 cint 將其四捨五入為最接近的偶數。例如,0.5 被四捨五入為 0,而1.5 被四捨五入為 2。2 int...

c中兩種int轉換方法的區別與好處壞處

這兩個方法的最大不同是它們對null值的處理方法 convert.toint32 null 會返回0而不會產生任何異常,但int.parse null 則會產生異常。沒搞清楚convert.toint32和int.parse 的細細微區別時千萬別亂用,否則可能會產生無法預料的結果,舉例來說 假如從u...

關於我生活中的風雨與彩虹,關於我生活中的風雨與彩虹 600字

每一次失敗並不可怕,可怕的是在失敗的境地裡沒有站起來的勇氣.我在中學的日記裡寫 假如每一天都是風與太陽的舞劇,沒有留下彩虹的痕跡,在動人的舞劇也只是黯淡。缺少色彩的世界那是一片灰白,唯有風雨的天空,那湛藍的話天空才會把生命的色彩,在暴雨中得以綻方。風雨之後見彩虹,美麗的四季為你招手。司馬千受宮刑,後...