⑴ C語言中,合法的長整型數
其實,在現在的計算機中通常使用的都是32位編譯器(除非你還使用Turbo C),這時內int和long已經沒有什麼容區別。(都是佔4個位元組,表示範圍從-2147483648到2147483647)B沒寫L,默認是int。C和D都是實數。
有時,你也會看到一些老的代碼中,在一些整型常後面加一個大寫或小寫的 L 字母。如:989L 這是什麼意思呢?原來,一個常數如果其范圍允許,那麼計算機默認將其認為是 int 類型的,那麼要讓計算機把某個數認為是 long int類型,就可以在其後面加 L 或 l。不過,這在以前的16位機器才有意義了。現在,我們的機器都是32位,long int 和 int 完全一樣,都是佔用4個位元組,所以,我們沒有必要這樣用了。但是long long 類型常量定義時就得寫3LL,而unsigned long long 為 3ULL
⑵ C語言中長整形4個位元組的數據范圍是多少
有些是有差別的,具體要看編譯器
char/signed
char/unsigned
char:
1個位元組;
char*(即指針變數):
2個位元組(16位編專譯屬器)
4個位元組(32位編譯器)
8個位元組(64位編譯器)
short
int:
2個位元組
int/unsigned
int:
2個位元組(16位編譯器)
4個位元組(32/64位編譯器)
long
int:
4個位元組
float:
4個位元組
double:
8個位元組
long/unsigned
long:
4個位元組(16/32位編譯器)
8個位元組(64位編譯器)
long
long:
8個位元組
指針4個位元組(32位編譯器)
⑶ c語言的,長整型
B是字面常量,對於一個整形常量來說,比如 4962710,因為後面沒加L,即認為是int型,但其又超出了int的范圍,所以溢出,實際表示的是一個負數。長整型常數是在字面常量後面加L來顯式說明。
⑷ C語言中如何輸出長整型數值
在C/C++中,64為整型一直是一種沒有確定規范的數據類型。現今主流的編譯器中,對64為整型的支持也是標准不一,形態各異。一般來說,64位整型的定義方式有long long和__int64兩種(VC還支持_int64),而輸出到標准輸出方式有printf(「%lld」,a),printf(「%I64d」,a),和cout << a三種方式。
本文討論的是五種常用的C/C++編譯器對64位整型的支持,這五種編譯器分別是gcc(mingw32),g++(mingw32),gcc(linux i386),g++(linux i386),Microsoft Visual C++ 6.0。可惜的是,沒有一種定義和輸出方式組合,同時兼容這五種編譯器。為徹底弄清不同編譯器對64位整型,我寫了程序對它們進行了評測,結果如下表。
上表中,正確指編譯通過,運行完全正確;錯誤指編譯雖然通過,但運行結果有誤;無法編譯指編譯器根本不能編譯完成。觀察上表,我們可以發現以下幾點:
long long定義方式可以用於gcc/g++,不受平台限制,但不能用於VC6.0。
__int64是Win32平台編譯器64位長整型的定義方式,不能用於Linux。
「%lld」用於Linux i386平台編譯器,」%I64d」用於Win32平台編譯器。
cout只能用於C++編譯,在VC6.0中,cout不支持64位長整型。
表中最後一行輸出方式中的printint64()是我自己寫的一個函數,可以看出,它的兼容性要好於其他所有的輸出方式,它是一段這樣的代碼:
CPP
void printint64(long long a)
{
if (a<=100000000)
printf("%d ",a);
else
{
printf("%d",a/100000000);
printf("d ",a0000000);
}
}
這種寫法的本質是把較大的64位整型拆分為兩個32位整型,然後依次輸出,低位的部分要補0。看似很笨的寫法,效果如何?我把它和cout輸出方式做了比較,因為它和cout都是C++支持跨平台的。首先printint64()和cout(不清空緩沖區)的運行結果是完全相同的,不會出現錯誤。我的試驗是分別用兩者輸出1000000個隨機數,實際結果是,printint64()在1.5s內跑完了程序,而cout需要2s。cout要稍慢一些,所以在輸出大量數據時,要盡量避免使用。
⑸ C語言長整型常數,什麼是長整型常數
長整型數是相對於基本整型數而言的,一般它佔用的存儲空間是基本整型數的2倍。具體大小隨不同的編譯器而不同。如果它的存儲空間是k個位元組,可存儲數的范圍是-2^(8k-1)~+2^(8k-1)-1。
整型變數可分為以下幾類:
1.基本型
類型說明符為int,根據計算機的內部字長和編譯器的版本,在內存中可能佔2或4個位元組(通常分別在16位機和32位機上),其取值為基本整常數。
2.短整型
類型說明符為short int或short,在內存中佔2個位元組,其取值為短整常數。
3.長整型
類型說明符為long int或long,在內存中佔4個位元組,其取值為長整常數。
4.64位整型(非ANSI標准)
類型說明符為__int64、long long int或long long,在內存中佔8個位元組,其取值為64位整常數。
5.無符號型
類型說明符為unsigned。它可以單獨使用代表unsigned int,也可以作為前綴,都表示無符號整數,即永遠為非負的整型變數,大於0的數據范圍約擴大為原來的2倍。各種無符號類型量所佔的內存空間位元組數與相應的有符號類型量相同。但由於省去了符號位,故不能表示負數。下表列出了Turbo C中各類整型量所分配的內存位元組數及數的表示範圍。
整數的後綴
可以用後綴「L」或「l」來表示長整型數。例如:
十進制長整型數:158L (十進制為158)、358000L (十進制為358000);
八進制長整型數:012L (十進制為10)、077L (十進制為63)、0200000L (十進制為65536);
十六進制長整型數:0X15L (十進制為21)、0XA5L (十進制為165)、0X10000L (十進制為65536)。
長整型數158L和基本整型數158 在數值上並無區別。但對158L,因為是長整型數,C編譯系統將為它分配4個位元組存儲空間。而對158,因為是基本整型,只分配2 個位元組的存儲空間。因此在運算和輸出格式上要予以注意,避免出錯。
無符號數也可用後綴表示,整型數的無符號數的後綴為「U」或「u」。例如:358u、0x38Au、235Lu均為無符號數。
前綴,後綴可同時使用以表示各種類型的數。如0XA5Lu表示十六進制無符號長整型數A5,其十進制為165。
⑹ C語言里怎樣理解長整型 短整型 和無符號型變數和常量
進制一般來說都是10進制,下面以10進制為例。
不同整型可以表示的范圍不同版,權可以根據實際需要選擇不同的整形。
各種整形的范圍請參見下表。
至於原理就涉及到二進制等知識了,初學C語言沒必要深究,一般整形只用int類型就足夠了。
如下網址可以搜到「C語言數據類型」相關課件。
http://www..com/s?wd=C%E8%AF%AD%E8%A8%80+%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B+filetype%3Appt&tn=site888_1_pg&cl=3&ie=utf-8
⑺ C語言整形數據
一、都有什麼用?
short int(int可以省略) 聲明相對較短的整形變數(一般用於存儲較小數值的整形變數)
long int (int可以省略)聲明相對較長的整型變數(一般用於存儲較大數值的整形變數)
int 聲明一個介於short和long之間的整形變數
unsigned int 聲明一個無符號的int類型變數(無符號即0和整數)
unsigned long 聲明一個無符號的long類型變數
unsigned short 聲明一個無符號的short類型變數
二、為什麼要分這么多類型?
1、為了確定變數所佔的內存空間。
以一般16位機器為例:
short和int 佔2位元組,即16bit。 0000 0000 0000 0000
long 佔4位元組 即32bit。 0000 0000 0000 0000 0000 0000 0000 0000
unsigned佔用的空間與它同類型的相同。如:
unsigned long 佔4位元組。
2、確定所佔空間中首位表示數字還是符號
以int 和 unsigned為例
首位為0時:
int:
0000 0000 0000 0001表示10進制數1
unsigned int:
0000 0000 0000 0001也表示1
首位為1時
int:
1111 1111 1111 1111 表示-1,因為首位表示符號,首位1表示負數。(負數=整數除首位外取反+1,即000 0000 0000 0001取反 == 111 1111 1111 1110 ,再+1,得 111 1111 1111 1111);
unsigned 1111 1111 1111 1111 表示65535,因為首位表示數字
希望我說明白了,對你有幫助。
⑻ C語言,大於長整型的數和一些小數怎麼定義啊,
C語言中的長整型和整型的最大值和最小值,在標准庫頭文件limits.h中以宏的形式回定義。用戶可以直接答查看或者使用。
INT_MAX:int類型的最大值
INT_MIN:int類型的最小值
UINT_MAX:unsigned int類型的最大值
LONG_MAX:長整型的最大值
LONG_MIN:長整型的最小值
ULONG_MAX:長整型的最小值
示例如下:
#include <stdio.h>
#include <limits.h>
int main()
{
printf("INT_MAX:%d\nUINT_MAX:%u\nLONG_MAX:%d\nULONG_MAX:%u\n", INT_MAX, UINT_MAX, LONG_MAX,ULONG_MAX);
printf("INT_MIN:%d\nLONG_MIN:%d\n",INT_MIN, LONG_MIN);
return 0;
}
⑼ C語言中長短整型如何區分
一般地,凡是有long的(包括long)自身,也屬於「長整形」(比如:long int或者long都是長整型)。short的屬於短整型。
⑽ C語言中無符號長整型數的輸入輸出格式是什麼
C語言中無符號長整型數的輸入輸出格式%u。
示例:
intmain()
{
unsignedinta;
intb=-1;
a=b;
printf(「%u」,a);
}
(10)c長整形數據怎麼表示擴展閱讀
c語言版printf()輸出格式權
%p指針
%s字元串
%%"%"
%a(%A)浮點數、十六進制數字和p-(P-)記數法(C99)
%c字元
%d有符號十進制整數
%f浮點數(包括float和doulbe)
%e(%E)浮點數指數輸出[e-(E-)記數法]
%g(%G)浮點數不顯無意義的零"0"
%i有符號十進制整數(與%d相同)
%o八進制整數e.g.0123
%x(%X)十六進制整數<xml:namespaceprefix=st1/>()e.g.0x1234