C語言書上說在C 6 0中int型佔位元組,但是做等級考試題中遇到的int都是按位元組算的,為什麼

2022-07-04 05:21:32 字數 5955 閱讀 1349

1樓:

按照4位元組來做,我們平時使用的正常的ia32架構機器int型別都是4位元組。宣告為 short int 或 short 型別變數的才是2位元組。

哪個題用2位元組算了?貼出來看看?

在turbo c下,sizeof(int)=2。而在vc環境下,sizeof(int)=4。現在的考試應該是以vc6.0環境為準。因此一般按照4處理即可。

2樓:

32位機子是4位元組

16位機子是2位元組

3樓:匿名使用者

等級考試都是按標準c計算的,不是c++,以後考試做題通通按2個位元組算。

做題的時候你得看是實踐題還是筆試題啊,如果是上機實踐題,當然是按實際的位元組數啊。很多編譯系統都不一樣的,你可以用sizeof(int);語句測試一下你使用的環境是幾個位元組。如果是筆試題,你按2位元組就對了。

4樓:

你自己編個程式打一下

printf("%d\n", sizeof(int));

就可以了

和電腦的字長有關係,現在都是4個位元組的,書可能版本老了吧。

5樓:匿名使用者

int型佔4個位元組是在32位機下,而在16位機中就是佔2個位元組

c語言中,char型別資料佔多少位元組?

6樓:胡說八道小鬼

char 1個位元組

16位編譯器

32位編譯器

64位編譯器

c語言中的char資料型別

c語言中的char資料型別是一種整數型別(integer type),它的大小被定義為1個byte。

亦即sizeof (char)  ≡ 1

7樓:吉祥二進位制

可以使用sizeof運算子獲取資料型別佔多少位元組。一般char型別佔1個位元組。

#include

int main()

8樓:匿名使用者

佔一個位元組,即8位,可用兩位十六進位制數表示,比如0x7f

9樓:

不要過於在意這種型別大小問題,在不同的機器有些實現是不一樣的,針對性太強的移植性會比較差,用的時候用sizeof()之類的函式測一下就好了

10樓:杜茂彥

sizeof(char) 1個位元組

wchar 2個位元組,用來表達unicode的

c語言中如何控制列舉型別佔用空間的大小

11樓:斯坦恩貝格(北京)電子****

標準c並沒有明確規定列舉型別佔用空間的大小,標準中只是說「列舉型別的尺寸是以能夠容納最大列舉子的值的整數的尺寸」,同時標準中也說明了:「列舉型別中的列舉子的值必須要能夠用一個int型別表述」,也就是說,列舉型別的尺寸不能夠超過int型別的尺寸,但是是不是必須和int型別具有相同的尺寸呢?上面的標準已經說得很清楚了,只要能夠容納最大的列舉子的

值的整數就可以了,那麼就是說可以是char、short和int。」

不同的c編譯器,對enum型別的大小作了不同的定義,而程式設計師是不能認為的修改列舉型別佔用空間的。

12樓:匿名使用者

在列舉型別後面設定對應的  :型別   即可。比如 enum cnum : char   (這裡加上   :char)

#include

enum cnum : char  // 加上   :char 則元素是 char 型別

;enum snum : short  // 加上   :short  則元素是 short 型別

;enum inum : int   // 加上   :int  則元素是 int 型別

;int main()

13樓:

列舉型別所佔大小有其基礎型別決定,c語言中無法更改其基礎型別,預設為int,所以是一個字的大小,32為是4個位元組。c++中根據其定義的基礎型別,大小有所不同:public enum timeofday:

unsigned long;

一道c語言題,是在c++環境中執行的

14樓:唯愛丶等憂傷

純手打,原創。

1,宣告函式放在標頭檔案後面函式之前例如

#include

-----在這之間---

void hello(int x);

int main(void);

2,定義函式放在宣告函式後面;

#include

void hello(int x);

---這裡可以

int main(void)

{}---這裡也可以

void hello(int x)

括號內就是定義的的函式內容,呼叫函式時將會輸出一定數量的hello!

3,呼叫函式在一個函式域內都可以

#include

void hello(int x);

int main(void)

void hello(int x)

4,函式的引數

正如void hello(int x); 其中的void表示不返回值,hello是函式名字;後面的int x 是接受的一個int值;

例如:hello(1) 將會把 1 作為輸入值到 hello函式定義的 x上;

hello(2) 將會把 2 作為輸入值到 hello函式定義的 x上;

這個hello函式而言;

hello(1)輸出一個hello!

hello(2) 輸出兩個hello!也就是hello!hello!

hello(2) 輸出三個hello!也就是hello!hello!hello!

總而言之,好好體會體會,

不懂追問吧。

c語言,為什麼int型別在16位系統中佔2個位元組,在32位系統中佔4個位元組?

15樓:海天盛

常用的位元組是8位的位元組,即包含8位的二進位制數,因此4個位元組就是32位。如下參考:

位元組是二進位制資料的單位。一個位元組通常是8位長。然而,一些較老的計算機結構模型使用不同的長度。為了避免混淆,在大多數國際文獻中都使用字位元組而不是字位元組。

在大多數計算機系統中,位元組是8位長資料的單位,大多數計算機使用位元組來表示字元、數字或其他字元。

資料儲存是以「位元組」為單位,資料傳輸大多以「位」(bit,也稱「位」)為單位,位表示0或1(即二進位制),每8位(bit,縮寫為b)構成一個位元組(縮寫為b),是最小級別的資訊單位。

擴充套件資料:

有關計算機的單位的作用:

在計算機中,作為一個整體處理或操作的一串數字被稱為計算機字,或簡稱,一個字通常被分成幾個位元組(每個位元組通常是8位)在記憶體中,每個單元通常儲存一個單詞,因此每個單詞都是可定址的。一個字的長度是以位來表示的。

在計算機的運算單元中,控制器通常以字單元進行傳輸。單詞出現在不同的地址,具有不同的含義。例如,傳送給控制器的字是一條指令,而傳送給算術單元的字是一個數字。

2.單詞長度:

計算機的每個字中包含的位數稱為字長。計算的字長是一次可以處理的二進位制數字的數目。當然,計算機處理資料的速度與它一次能處理的位元數和處理資料的速度有關。

例如如果一臺計算機的字長是另一臺計算機的兩倍,那麼即使兩臺計算機的速度相同,前者也可以在同一時間完成兩倍的工作。

16樓:匿名使用者

所謂的16位32位64位系統是由cpu決定的,由機器指令的定址、暫存器位數決定的

os受cpu的限制,但在32位的cpu下16位的os也可以跑(就向上面提到的所謂純dos)

很多os是向前相容的,就是使以前的程式也能執行,如果編譯器本身是16位時代做的,那麼os會提供一個模擬16位的子環境供這個編譯器使用

sizeof只是編譯時常量,不能做到二進位制相容(移植)

int只是語言定義裡面的一個關鍵字,只對compiler可見,complier說它是幾位就是幾位,和os/cpu都沒關係

17樓:匿名使用者

在32位系統中int佔4個位元組,32位

16位系統中佔2個位元組,16位

佔多少位是根據系統來定的,一個位元組固定是8位

18樓:

int就是定義個暫存器,、1位元組就是8位、、、

c語言中 int long float double分別佔用了多少個位元組??

19樓:

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 double: 8/10/12/16?

long/unsigned long:4個位元組(16/32位編譯器)8個位元組(64位編譯器) long long: 8個位元組 string:

字元個數+1...

20樓:

你可以用sizeof來測算一個型別或一個變數佔用的記憶體大小。

比如:size_t size = sizeof(int);

常用型別大小如下:

型別大小bool

1 個位元組

char , unsigned char, signed char

1 個位元組

short, unsigned short

2 個位元組

int , unsigned int

4 個位元組

__int n

8、16、32、64 或 128 位元組依賴 n 的值。__intn 是 microsoft 專用的。

long, unsigned long

4 個位元組

float

4 個位元組

double

8 個位元組

long double 1

8 個位元組

long long

等效於 __int64。

c語言中bool是佔用1位元組嗎?如果只佔用一位怎麼做呢?

21樓:幻翼高達

需要準備的材料分別有:電腦、c語言編譯器。

1、首先,開啟c語言編譯器,新建一個初始.cpp檔案,例如:test.cpp。

2、在test.cpp檔案中,輸入c語言**:bool a;printf("%d", sizeof(a));。

3、編譯器執行test.cpp檔案,此時成功列印出了bool型別的位元組數是1。

22樓:風若遠去何人留

在c語言中,並沒有bool型別,如果出現bool型別,那麼就是自定義型別,根據定義方式,可能佔用不同空間,可以通過輸出sizeof(bool)的方式確定。

在c++中是存在bool系統型別的,同樣可以通過輸出sizeof(bool)的方式,來確定其佔用位元組數。在c++中,sizeof(bool)的值為1,所以該型別是佔用1位元組的。

之所以不實現為一位,是因為計算機存取的最小空間是按位元組計算的,在獨立的單個bool型變數下,只佔一位空間並沒有實際意義。

當出現一組bool型別時,通過結構體的位域概念,可以實現單獨佔用一位。

如struct test

;在這個例子中,定義了8個bool型成員在一個結構體test中,成員變數名後的:1代表該成員僅佔用1位,這樣整個結構體共佔用一個位元組。

使用位域定義時,bool變數的賦值,引用等操作,與普通bool變數並沒有區別,但成員變數不支援取地址操作,這是因為,地址的單位同樣是位元組,對於位為單位的成員,取位元組為單位的地址是沒有意義的。於是c/c++在編譯的時候就禁止了該操作。

C語言中char型和int型資料是以(原碼,反碼,補碼,ASCLL碼)形式儲存的,最好順便說說別的

char型是以ascii碼儲存的 對於int型資料 正數是用原碼,負數是用補碼 c語言中 char與int有什麼區別?c語言中 char 與 int 具體區別如下 1 表示的變數型別不同 char 是字元變數,而 int 是整型變數。2 申請的型別資料不同 char 用來申請字元和字串或者字串指標 ...

c語言中float型轉換成int型是什麼規則

1 c語言整型使用原碼 反碼 補碼進行編碼,而浮點型使用ieee754進行編碼,所以強制轉換基本上是沒有任何意思的,因為編碼格式不一樣。2 正確的作法是使用c語言標準庫中的floor和ceil函式來進行向下或者向上取整。比如 include include int main 結果 up 2 down...

c語言中我把int型資料賦給char型如

int a char b a 24 b a 沒有問題,編譯的時候會有warning 但是要注意char int 的數值範圍 a 3.2 賦值後,a的值將變成3 浮點型專轉為整型,小數屬部分會被舍掉 int和char是相通的,兩者之間可相互賦值,按上述 b對應的是一個控制字元cancel 如果把浮點型...