1. c語言中的 數的范圍 位元組數 要怎麼算
printf("%d", sizeof(int)); 得到的就是位元組數 范圍就是 正負2的這個數乘以8減去1次方-1 比如說4 -(2^31-1)~~~2^31-1
2. C語言long是幾個位元組
C語言中long是4個位元組,是一種數據類型,有兩種表現形式:有符號和無符號。
在有符號中,long的表示數的范圍為:-2147483648~2147483647
在無符號中,long的表示數的范圍為::0~4294967295
(2)c語言數的位元組數擴展閱讀:
整型變數可分為以下幾類:
基本型
類型說明符為int,根據計算機的內部字長和編譯器的版本,在內存中可能佔2或4個位元組(通常分別在16位機和32位機上),其取值為基本整常數。
短整型
類型說明符為short int或short,在內存中佔2個位元組,其取值為短整常數。
長整型
類型說明符為long int或long,在內存中佔4個位元組,其取值為長整常數。
參考資料來源:
網路-long
網路=整型
3. c語言的位元組數是什麼意思
int佔多少個位元組是由編譯器決定的,ANSI標準定義int是佔2個位元組.
TC是按ANSI標準的,它的int是佔2個位元組的.
你可以在TC里試.printf("%d",sizeof(int));結果是2;
但是在VC里,一個int是佔4個位元組的,在VC裡面,
printf("%d",sizeof(int));
cout<<sizeof(int);結果都是4.
不同的編譯器,規定也不一樣.
float,double也是一樣的,在不同的編譯器里,占的位元組是不一樣的.
4. C語言中,位元組數怎樣算
\xff是轉義0xff,這個內容是2位元組。
如果作為字元串,還要有個0x0作結束符,實際需要佔用的內存是3位元組。
5. c語言類型所佔位元組數
類型
常見的有char、int、long、short、float、double及指針等.
字元類型
這里單只char,char變數在內存中存儲的是字元對應的ASCII碼值。所以長度也是固定的,為1個位元組。
整數類型
查了資料發現對各個類型的整數佔用位元組數是有一個規定的,雖然16位32位或者64位的機子各種類型所佔用的長度並不一樣。規則如下:
short 至少佔用2個位元組。
int 建議為一個機器字長。32位環境下機器字長為4位元組,64位環境下機器字長為8位元組。
short 的長度不能大於 int,long 的長度不能小於 int。
所以說,short並不一定短,long並不一定短,有可能都和int一樣長。
浮點數(小數)
C中浮點數有兩種,float和double,不像整數,小數的長度始終是固定的,float佔用4個位元組,double佔用8個位元組。
指針
C中指針即為地址,所以編輯器的定址空間則是指針的地址范圍。所以指針變數在32位機器的定址空間為2^32,要將所有地址都表示出來則需要為4個位元組長度,所以要佔用4個位元組長度。同理64位的編譯器則需要8個位元組長度。
6. C語言中如何輸出位元組數
a)putchar函數:將指定的(表達式的值所對應的)字元輸出到標准輸出終端(屏幕)上。
格式:int putchar( int c );
例如:putchar(『a』+3);列印的結果是d,是一個字元而不是數值。
a的ASCII碼是97,加3是ASCII碼表中100對應的字元就是d。
例如:putchar(99);列印的結果是c,代入一個數字列印出的是一個字元。
就如同代入的是學號,列印出來的是姓名一樣。
b)putc函數:將指定的字元輸出到指定標准輸出流(屏幕或一個文件)中。
格式:int putc( int c, FILE *stream );
c)等價關系:putc的功能中包含putchar的功能。
putchar(c)等價於putc(c,stdout)。
例如:putc(『A』,stdout)等價於putchar(『A』)
(6)c語言數的位元組數擴展閱讀
C語言的字元對齊
1、數據類型自身的對齊值:對於char型數據,其自身對齊值為1,對於short型為2,對於int,float,double類型,其自身對齊值為4,單位位元組。
2、復雜類型(如聯合,結構體或者類)的自身對齊值:其成員中自身對齊值最大的那個值。
3、指定對齊值:#pragma pack (value)時的指定對齊值value。
4、數據成員、復雜類型(如聯合,結構體或類)的有效對齊值:自身對齊值和指定對齊值中小的那個值。
7. C語言字元數占幾個位元組,又是多少位。
這個要看字元數是什麼數據類型,可以用sizeof(類型)操作符來測試位元組數。
1、英文字母:如果是char 型,那麼是佔用1個位元組,8位。如果是string型,應該是兩個位元組,16位,因為末尾還有個\0字元。
比如:
char c = 'a';//它佔用一個字元
char c[] = "a";//佔用兩個。
char c[] = "abcde";//佔用4+1 = 5 個,結尾有一個'\0'
2、數字:有很多種類,從小到大分別為:
short、int、float、long、double
位元組為:1個、2個、4個、8個、8個
位數為:8位、16位、32位、64位、64位
3、漢字:理論上說,一個漢字佔用兩個位元組,16位。比如:中國,就佔用4個位元組,例如:
char c[] = "中國";//佔用4+1 = 5個字元
8. C語言的int占幾個位元組,char占幾個位元組
char :1個位元組; char*(即指針變數):4個位元組(32位的定址空間是2^32, 即32個bit,也就是4個位元組。同理64位編譯器); short int:2個位元組; int:4個位元組; unsigned int :4個字; float: 4個位元組; double:8個位元組; long:4個位元組; long long:8個位元組; unsigned long: 4個位元組
我用的書里,long寫的是8個, 我認為應該是錯誤的,是 4個位元組
#include<stdio.h>
intmain(void)
{
printf("char所佔位元組數%d ",sizeof(char));
printf("int所佔位元組數%d ",sizeof(int));
printf("short所佔位元組數%d ",sizeof(short));
printf("long所佔位元組數%d ",sizeof(long));
printf("float所佔位元組數%d ",sizeof(float));
printf("double所佔位元組數%d ",sizeof(double));
}
9. C語言結構體所佔用的位元組數如何計算
結構體的數據類型的有點多我們就不啰嗦了,直接來看相同數據結構體的幾種書寫的格式吧。
格式一:
01.structtagPhone
02.{
03.charA;
04.intB;
05.shortC;
06.}Phone;
格式二:
01.structtagPhone
02.{
03.charA;
04.shortC;
05.intB;
06.}Phone2;
格式三:
01.structtagPhone3
02.{
03.charA;
04.charB[2];
05.charC[4];
06.}Phone3;
我們都知道,char類型佔用1個位元組,int型佔用4個位元組,short類型佔用2個位元組,long佔用8個,double佔用16個;
那麼我們可能會犯一個錯誤就是直接1+4+2=7,該結構體佔用7個位元組。這是錯的。
以下我們簡單分析下:
計算結構體大小時需要考慮其內存布局,結構體在內存中存放是按單元存放的,每個單元多大取決於結構體中最大基本類型的大小。
對格式一:
上面結構計算大小,sizeof(Phone3) = 1 + 2 + 4 = 7, 其大小為結構體中個欄位大小之和,這也是最節省空間的一種寫法。
總結:
第一種寫法,空間浪費嚴重,sizeof 計算大小與預期不一致,但是保持了每個欄位的數據類型。這也是最常見的漫不經心的寫法,一般人很容易這樣寫;
第三種寫法,最節省空間的寫法,也是使用 sizeof 求大小與預期一樣的寫法,但是全部使用位元組類型,丟失了欄位本生的數據類型,不方便使用;
第二種寫法,介於第一種和第三種寫法之間,其空間上比較緊湊,同時又保持了結構體中欄位的數據類型。
只要了解是這些寫法的差異性,可以視情況選用。
10. C語言中一個英文字母.漢字.數字 分別都占幾個位元組啊
1、英文字母:如果是char 型,那麼是佔用1個位元組,如果是string型,應該是兩個。
char c = 'a';//它佔用一個字元
char c[] = "a";//佔用兩個。
char c[] = "abcde";//佔用4+1 = 5 個,結尾有一個'