c語言longlong范圍
『壹』 c語言中int,long的取值范圍是多少
主要看編譯器怎麼對這些類型的數據怎麼處理了,不同的編譯器可能會給int分配不同的空間,一般在32位系統中會給int分配4個位元組,以前的單片機編譯器一般會分配1個位元組,現在64位的編譯器一般會分配8個位元組,不同的位元組,他們能表示的取值范圍也就不一樣了。
同樣,有符號數和無符號數,表示的數據范圍也不一樣。比如單片機中的編譯器C51,分配一個位元組:
無符號數,最大也就是0XFF,即十進制的255。
有符號數,正數0~127,負數-128到-1
其它依次類推
long同樣類似
『貳』 C語言中輸出long long型數據怎麼輸出
C語言中輸出long long型數據使用%lld格式輸出的方法:
1、 long long 是C99標准對整型類型做的擴展,每個long long類型的變數佔8位元組,64位。其表示範圍為-9223372036854775808~9223372036854775807。
2、long long 類型輸出的時候,需要用printf函數,用%lld格式輸出。 示例代碼如下:
long long a = 1234;printf("a=%lld
", a)。
3、輸出的各種可用於%d上的格式控制,均可用於%lld上,比如%10lld,表示輸出佔十位寬度等。
『叄』 C語言long是幾個位元組
C語言中long是4個位元組,是一種數據類型,有兩種表現形式:有符號和無符號。
在有符號中,long的表示數的范圍為:-2147483648~2147483647
在無符號中,long的表示數的范圍為::0~4294967295
(3)c語言longlong范圍擴展閱讀:
整型變數可分為以下幾類:
基本型
類型說明符為int,根據計算機的內部字長和編譯器的版本,在內存中可能佔2或4個位元組(通常分別在16位機和32位機上),其取值為基本整常數。
短整型
類型說明符為short int或short,在內存中佔2個位元組,其取值為短整常數。
長整型
類型說明符為long int或long,在內存中佔4個位元組,其取值為長整常數。
參考資料來源:
網路-long
網路=整型
『肆』 關於C語言中的long long 的問題
signed char有符號位元組,表示範圍是-128~127,
unsigned char是無符號位元組,表示範圍是0~255。
long long是有符號長整形,表示範圍是-2^63~2^63-1。
signed char,unsigned char都是顯式聲明的有符號/無符號,而char可能是二者其中之一,由編譯器決定。就是說,如果你寫char,有可能是signed的,也有可能是unsigned的。但是絕大多數編譯器是默認為signed的。
值得注意的是,上面講的是表示範圍,但是無論是C還是C++,signedchar、unsignedchar、char是三種不同的類型。
出現這種情況可以歸結為歷史原因。早期C沒有專用於算術運算的單位元組整數類型,實現中也無法保證char使用什麼符號(不同符號轉換為超過一個位元組的整數類型時各個硬體平台的效率有差異)。後來才追加signedchar和unsignedchar。其符號是implementation-defined。
例子:
#include<stdio.h>
intmain()
{
signedchara=255;
unsignedcharb=255;
charc=255;
longlongd=100000000000;
longe=100000000000;
printf("%d ",a);
printf("%d ",b);
printf("%d ",c);
printf("%lld ",d);
printf("%d ",e);
return0;
}
結果:
可以發現可以容納的大小是不同的。
其中a,c,e發生了溢出,產生了不正確的結果。
『伍』 c語言中int,long的取值范圍是多少為什麼是這么多(32位機)
int和long作為基本的整數類型,取值范圍和位數直接相關。如果是n位整數的話,最高位表示符號位,剩下的n-1位以補碼形式表示絕對值,因此范圍是整數區間[-2^(n-1),2^(n-1))。
int和long並沒有明確位數,具體和平台相關(有一點可以確定,sizeof(int)<=sizeof(long))。一般而言,32位機的int是32位的,於是范圍是[-2^31, 2^31)也就是[-2147483648, -2147483648)。而非int的位數取決於機器字長外還決定於軟體平台(操作系統、編譯器)上實現的特定的C語言數據模型(專指整數數據模型,不是資料庫里討論的那個),只是一般32位平台上的long都比較統一(基本上都是LP32),為32位,范圍和int一致。(如果是64位平台,除了Windows上的LLP64模型中long是32位外,LP64、ILP64、SILP64的long都是64位)。
另外LS錯誤。首先用的無符號整數寫法是錯誤的,其次printf使用不當(應該用字長無關的%i保證結果正確),再次結果意義不明確。
unsigned int i= -1;
unsigned long l = -1;
printf("%i %i", i, l);
-1轉換為無符號數後表示負數的符號位「1」被作為最高非符號位,輸出的是無符號整數的最大值。
printf("%i %i", i >> 1, l >> 1);
輸出有符號整數最大值,該值加1再乘以-1後即得有符號整數最小值。
====
[原創回答團]
『陸』 C語言中比long long int 更大的整數類型是什麼
long long 類型的范圍是:-9223372036854775808~9223372036854775807
如果只用正數可以考慮用unsigned long long范圍是:0~18446744073709551615
如果需要更大的數字可以考慮使用 數組來儲存
參考大數運算
http://ke..com/link?url=FkfzF-RbPFxaGa_a
『柒』 objective c語言中的long與long long類型最大最小值分別都是相同的嗎
都是相同的,在C語言當中 long == long long。
1. long 是C語言的一個關鍵字,代表一種數據類型,中文為長整型。
2. long是long int的簡寫,也就是說,在C語言中long int類型和long類型是相同的。
3. 每個long型佔4個位元組,在32位編譯系統下,long和int占的空間是相同的。這也導致了long型變數使用的越來越少了。
4. long型可以表示的整型數字范圍為-2,147,483,648 ~ 2,147,483,647, 即-2^32 ~ 2^32-1。
在用在C的格式化輸入輸出時,long型的格式化字元為"%ld"。
5. long同其它整型類型一樣,可以同unsigned 聯合使用,形成unsigned long,即無符號長整型, 其格式化字元為"%lu"。
6. 在部分編譯器下,比如gcc, 兩個long合用,即long long類型,表示C語言目前最長的系統整型類型,每個long long類型佔8位元組,64位。其格式化字元為"%lld"。
『捌』 C語言 關於int和long類型的范圍
編譯器不同,寬度是不相同,分別如下:
16位編譯器:
int: 2個位元組
long: 4個位元組
long long: 8個位元組
unsigned long: 4個位元組
32位編譯器:
int: 2個位元組
long: 4個位元組
long long: 8個位元組
unsigned long: 4個位元組
64位編譯器:
int: 4個位元組
long: 8個位元組
long long: 8個位元組
unsigned long: 8個位元組
具體范圍,請看下圖:
『玖』 在C/C++里,long long型的范圍是多少,輸入輸出格式是什麼
long long 的字元長度是int型的兩倍,現在int型一般為32位,所以long long是64位的,能支持的最大數為2^63 -1。
在VC6.0里並不支持long long,它使用的是__int64,具有相似的效果
long long 輸出格式為%lld
__int64 輸出格式為 %I64d
『拾』 long long int 是神馬。。。是C語言裡面的東西,
「long long int」在C語言中是64位長整型數據類型。
「long long int」在C語言中可以簡寫為「long long」,作為「long」和「int」數據類型的強化版數據類型,它能支持的整數范圍是-2^63到2^63-1。而先前的「long」是32位長整型數據類型,整數范圍僅能支持到-2^31至2^31-1。
「long long int」和「unsigned long long int」都是在C99標准中才被引進的。
(10)c語言longlong范圍擴展閱讀:
C99標准引入的主要新特性:
1、對編譯器限制增加了,比如源程序每行要求至少支持到 4095 位元組,變數名與函數名的要求支持到 63 位元組 (extern 要求支持到 31)。
2、增加了新關鍵字 restrict,inline,_Complex,_Imaginary,_Bool。
3、支持 long long,long double _Complex,float _Complex 這樣的類型。
4、持了不定長的數組。數組的長度就可以用變數了。聲明類型的時候呢,就用 int a[*] 這樣的寫法。不過考慮到效率和實現,這玩意並不是一個新類型。所以就不能用在全局裡,或者 struct union 裡面,如果你用了這樣的東西,goto 語句就受限制了。
5、相較於C89標准,C99標准新增了一種結構體/數組的初始化方式,名叫designated initializers。
6、支持 16 進制的浮點數的描述。
7、增加了一個內置的局部靜態字元數組變數 __func__ ,可以用於得到當前函數的函數名。
8、取消了不寫函數返回類型默認就是 int 的規定。