在c程式中,可以將int整型資料,看作整數資料嗎

2022-05-16 03:35:19 字數 6023 閱讀 8773

1樓:聽不清啊

int整型資料本身就是整數資料,不用「看作」了。

2樓:匿名使用者

就是啊, 但是有範圍限制, 不過對一般的操作來說這個範圍足夠了

3樓:白狼聖狂

在c語言中,為了使操作人員能夠方便的操作儲存在計算機裡的各種資料,特意提供了幾個已經被定義與運用的基本資料結構,有int/char/float/bool/double等等資料型別。

其中int是專門儲存整形資料,char是儲存符號(字元)資料,float/double都是儲存小數(浮點)資料{只不過double比float儲存的精準度要高一些,bool只有兩種狀態,1與0(也可以說是對與錯(true and false))。

兩種不同的型別之間可以轉化,如int型別可以化為char型別,float/double轉化成int型別(高精度轉化為低精度,會經過抹零處理),各種型別都有等級之分,參與計算時會暫時轉變為更高精度的型別,運算後的結果會捨棄某些資料降低等級,化作合適的型別儲存在相應的型別資料中。

c語言中將一個浮點型賦值給整型時,會不會四捨五入?

4樓:幻翼高達

c語言中將一個浮點型賦值給整型時,不會四捨五入,會直接捨去小數部分的資料,也可以認為是執行了下取整運算。

將浮點數(單雙精度)轉換為整數時,將捨棄浮點數的小數部分, 只保留整數部分。將整型值賦給浮點型變數,數值不變,只將形式改為浮點形式, 即小數點後帶若干個0。注意:

賦值時的型別轉換實際上是強制的。

例如執行賦值後,無論5.4還是5.6都會變成5。

5樓:_夢幻陽光

不會的,不過可以寫一個函式自己轉換啊

#include

int fun(float x)

int main()

列印的為3和4,c語言很靈活的,樓主想要什麼幾乎都能實現

6樓:匿名使用者

不會的,如int x; 如果有 x=4.78; 則x的值是4

7樓:匿名使用者

不會,後面的小數就直接沒了,只有整數部分了

採納我哦

8樓:匿名使用者

不會的啦,整型的話,1/2=0,而不是0.5或者1,但整型變成浮點型要強制型別轉換,不知這麼解釋明白不。?

9樓:龍__鳳

不會的,看程式的執行結果:

10樓:路過

你好,不會的。浮點型資料賦給整型時,浮點型就會被自動轉換成整型,整型只是整數部分。

希望能夠幫到你。

11樓:匿名使用者

不會,一般是給你強轉成整形了,小數位就沒了,四捨五入是不存在的

12樓:匿名使用者

不會,只會把整數部分賦給整型變數

13樓:匿名使用者

不會,比如float a=4.45 那麼 printf("%d",a);輸入為4,直接把小數點後面的數刪去,不是四捨五入

c語言:int型的強制型別轉換是按四捨五入嗎?

14樓:跪著作揖

強制型別轉換int的結果只保留整數部分,不是四捨五入。

例如:int 3.14,結果為3;

int  3.58,結果也為3。

int是將一個數值向下取整為最接近的整數的函式。int是資料庫中常用函式中的取整函式,常用來判別一個數能否被另一個數整除。

擴充套件資料

int 函式使用的注意事項:

1、 語法int(number)其中number是需要進行向下舍入取整的實數。

2、 int函式是不進行四捨五入,直接去掉小數部分取整。

3、int函式處理負數的小數時總是向上進位的。

標準規定int的最小取值範圍是 -32767 到 32767。

int的取值範圍因機器而異,但是一定要大於或者等於 -32767 到 32767。一般來說,int佔用一個字的記憶體空間。因此,字長為 16 位(bit)的舊式 ibm 相容機使用 16 位來儲存整型int,取值範圍是-32768 到 32767 。

目前的個人電腦一般都是 32 位字長的,這些電腦中,int一般也是 32 位的,取值範圍是 -2147483648 到 2147483647。對於使用 64 位 cpu 的電腦,使用更多位儲存int也是很自然的事情,取值範圍當然也會更大。

15樓:匿名使用者

作為函式,int函式指資料庫中常用函式中的

「向下取整函式」。常用來取一個數中的整數部分。int是將一個數值向下取整為最接近的整數的函式。為取整函式。

意思是將被轉換數直接擷取整數部分,不進行四捨五入運算。例如:

int(123.456);//取值為123

int(-123.456);//取值為124

int(1234.56);//取值為1234

擴充套件資料:

除int外,其他強制轉換有:

void:宣告函式無返回值或無引數,宣告無型別指標,顯示丟棄運算結果。(c89標準新增)

char:字元型型別資料,屬於整型資料的一種。(k&r時期引入)

int:整型資料,表示範圍通常為編譯器指定的記憶體位元組長。(k&r時期引入)

float:單精度浮點型資料,屬於浮點資料的一種。(k&r時期引入)

double:雙精度浮點型資料,屬於浮點資料的一種。(k&r時期引入)

_bool:布林型(c99標準新增)

_complex:複數的基本型別(c99標準新增)

_imaginary:虛數,與複數基本型別相似,沒有實部的純虛數(c99標準新增)

_generic:提供過載的介面入口(c11標準新增)

修飾關鍵字:

short:修飾int,短整型資料,可省略被修飾的int。(k&r時期引入)

long:修飾int,長整型資料,可省略被修飾的int。(k&r時期引入)

long long:修飾int,超長整型資料,可省略被修飾的int。(c99標準新增)

signed:修飾整型資料,有符號資料型別。(c89標準新增)

unsigned:修飾整型資料,無符號資料型別。(k&r時期引入)

restrict:用於限定和約束指標,並表明指標是訪問一個資料物件的唯一且初始的方式。(c99標準新增)

16樓:聽不清啊

不是的。

c語言的int型的強制型別轉換是截尾取整的。

即int x=(int)3.997;

x的值是3。

17樓:匿名使用者

不會四捨五入,會直接截斷取整數部分。

18樓:匿名使用者

有四捨五入的情況,在你想要保留幾位小數的時候,多餘的緊接著的一位要四捨五入

不過c裡面沒有提供四捨五入的函式,不過你可以這樣a = (int)(a*100 + 0.5)/100這只是一個小技巧,對a的第三位進行四捨五入比如將55.3351保留2位小數,第三位四捨五入,可以用a=(a*100+0.

5)/100.0或a=(int)(a*100+0.5)/100.

0,,,我的問題是,,兩個都行嗎?有什麼區別,我做過實驗,貌似沒什麼區別……

19樓:直接用使用者名稱

不是 是捨棄小數部分

c語言基本整型的資料範圍什麼意思

20樓:匿名使用者

基本整型變數,所佔位元組數為2,每個位元組等於八位二進位制數,可以用0和1表示的八位二進位制數,2個位元組也就是16位二進位制。

最高位表示正負,所以用0和1組成的16位數字範圍為-2的15次方~2的15次方,也就是-32768~32767。因此基本整型變數資料範圍是-32768~32767。

21樓:匿名使用者

int佔4個位元組,一個位元組4位,則它的空間有2的16次方byte,若有unsigned修飾,則說明它是無符號整型資料,它的範圍為0~65535,若沒有unsigned修飾,則說明最高位為符號位,它的範圍為-32768~32767

對於無符號數,比較簡單,根據佔用的位數可以直接計算:

unsigned short     16位      0~2的16次方-1(即65535)

unsigned int         16位      0~2的16次方-1(即65535)

unsigned long      32位      0~2的32次方-1(即4294967295)

對於有符號數,由於符號位佔用一位,並且負數要用補碼錶示。

以8位資料為例:2進位制的11111111表示-1,10000000表示-128,所以負數範圍-128~-1;2進位制00000000表示0,01111111表示127,所以正數範圍0~127。合起來就是-128~127,找一下規律發現是- 2的(8-1)次方~2的(8-1)次方-1,那麼就可以得到任何位數的範圍:

short     16位      - 2的(16-1)次方~2的(16-1)次方-1(即-32768~32767)

int         16位      - 2的(16-1)次方~2的(16-1)次方-1(即-32768~32767)

long      32位      - 2的(32-1)次方~2的(32-1)次方-1(即-2147483648~2147483648)

擴充套件資料:

(1)char:字元型資料,屬於整型資料的一種,佔用一個位元組

(2)unsigned char:無符號字元型資料,屬於整型資料的一種,佔用一個位元組

(3)short:短整型資料,屬於整型資料的一種,佔用兩個位元組

(4)unsigned short:無符號短整型資料,屬於整形資料的一種,佔用兩個位元組

(5)int:整形資料,屬於整型資料的一種,佔用四個位元組

(6)unsigned int:無符號整型資料,屬於整型資料的一種,佔用四個位元組

(7)long:長整型資料,屬於整型資料的一種,佔用四個位元組

(8)unsigned long:無符號長整型資料,屬於整形資料的一種,佔用四個位元組

實 型 變 量 的 類 型 有 float和 double兩 種 ,下 表 列 出 這 兩 種 型別所 佔 內 存 的 位數 和 其 表 示 範 圍 。資料型別 所佔位數 數的範圍:

float 32 3.4e-038~3.4e+038

double 64 1.7e-308~1.7e+308

雙 精 度 類 型 double比 單 精 度 類 型 float具 有 更 高 的 精 度 和更大 的 表 示 範 圍 ,常 常 使 用 。

22樓:薔祀

整型變數int佔4個位元組,一個位元組4位,則它的空間有2的16次方byte,若有unsigned修飾,則說明它是無符號整型資料,它的範圍為0~65535。若沒有unsigned修飾,則說明最高位為符號位,它的範圍為-32768~32767。

int是資料庫中一種資料型別,同時,作為函式,int函式指資料庫中常用函式中的「向下取整函式」。常用來取一個數中的整數部分。int是將一個數值向下取整為最接近的整數的函式。

為取整函式。

擴充套件資料

c語言中其他資料的取值範圍:

①短整型:

型別說明符為short int或short'c110f1。所佔位元組和取值範圍會因不同的編譯系統而有差異。對於16字機,short int 佔2個位元組,在大多數的32位機中,short int 佔4個位元組。

但總的來說,short int 至少16位,也就是2個位元組。

②長整型:

型別說明符為long int或long ,在記憶體中佔4個位元組,其取值為長整常數。在任何的編譯系統中,長整型都是佔4個位元組。在一般情況下,其所佔的位元組數和取值範圍與基本型相同。

③無符號型:

型別說明符為unsigned。在編譯系統中,系統會區分有符號數和無符號數,區分的根據是如何解釋位元組中的最高位,如果最高位被解釋為資料位,則整型資料則表示為無符號數。

在c中定義時int和double有何區別

1 型別不同 int 和 double 雖然都是基本資料型別,但 int 是整形,double 是浮點型。2 在計算中的儲存方式不同 int在32位計算機中佔4個位元組,這4個位元組的在記憶體中存放的順序為低位元組存在低地址,高位元組存在高地址。double是64位的,在儲存方式上都是遵從ieee的...

在C 中int和long有什麼區別,自動型別轉化為什麼從int轉換成long

都是整bai數型別,以前老的編譯器duint 16位 long 32位,現在zhi好多編譯器int 和long一樣。dao自動轉內 換是內建規則,容即隱式轉換,因為int 轉long不會丟失資料,但如果long轉成int,有些編譯器可能位寬不一樣,會丟失資料。在c 中怎麼把long轉換成int 強制...

C 中為什麼在函式宣告中引數可以只註明資料型別而不是寫出引數變數名

不行,標準c 規定任何不同型別的實體不能同名,後來c 標準引入了函式過載機制,允許多個函式擁有同一個名字,但是引數列表必須不同,但是變數和變數之間,函式和變數之間就不能同名了。宣告 而已 又不是定義函式 及其引數變數 編譯器 找到宣告 只做型別檢查的 當然不需要寫上變數名 編譯器只需要知道是什麼型別...