您现在的位置是:Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款 > 

04 訂閱轉換服務地址是什么數據類型(數據庫中轉換數據類型的幾種方法)

Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款2024-05-28 03:33:08【】6人已围观

简介轉換成int型輸出。注意:較長型數據轉換成短型數據輸出時,其值不能超出短型數據允許的值范圍,否則轉換時將出錯。如:longa=80000;printf("%d",a);運行結果為1

轉換成int型輸出。

注意:較長型數據轉換成短型數據輸出時,其值不能超出短型數據允許的值范圍,否則轉換時將出錯。如:

long a=80000;

printf("%d",a);

運行結果為14464,因為int型允許的最大值為32767,80000超出此值,故結果取以32768為模的余數,即進行如下取余運算:

(80000-32768)-32768=14464;

輸出的數據類型與輸出格式不符時常常發生錯誤,如:

int d=9;

printf("%f",d);

float c=3.2;

printf("%d",c);

將產生錯誤的結果。

同一句語句或表達式如果使用了多種類型的變量和常量(類型混用),C 會自動把它們轉換成同一種類型。以下是自動類型轉換的基本規則:

1. 在表達式中,char 和 short 類型的值,無論有符號還是無符號,都會自動轉換成 int 或者 unsigned int(如果 short 的大小和 int 一樣,unsigned short 的表示范圍就大于 int,在這種情況下,unsigned short 被轉換成 unsigned int)。因為它們被轉換成表示范圍更大的類型,故而把這種轉換稱為“升級(promotion)”。

2. 按照從高到低的順序給各種數據類型分等級,依次為:long double, double, float, unsigned long long, long long, unsigned long, long, unsigned int 和 int。這里有一個小小的例外,如果 long 和 int 大小相同,則 unsigned int 的等級應位于 long 之上。char 和 short 并沒有出現于這個等級列表,是因為它們應該已經被升級成了 int 或者 unsigned int。

3. 在任何涉及兩種數據類型的操作中,它們之間等級較低的類型會被轉換成等級較高的類型。

4. 在賦值語句中,= 右邊的值在賦予 = 左邊的變量之前,首先要將右邊的值的數據類型轉換成左邊變量的類型。也就是說,左邊變量是什么數據類型,右邊的值就要轉換成什么數據類型的值。這個過程可能導致右邊的值的類型升級,也可能導致其類型降級(demotion)。所謂“降級”,是指等級較高的類型被轉換成等級較低的類型。

5. 作為參數傳遞給函數時,char 和 short 會被轉換成 int,float 會被轉換成 double。使用函數原型可以避免這種自動升級。

三.強制轉換

強制類型轉換是通過類型轉換運算來實現的。其一般形式為:(類型說明符)(表達式)其功能是把表達式的運算結果強制轉換成類型說明符所表示的類型。自動轉換是在源類型和目標類型兼容以及目標類型廣于源類型時發生一個類型到另一類的轉換。例如: (float) a 把a轉換為實型,(int)(x+y) 把x+y的結果轉換為整型。在使用強制轉換時應注意以下問題:

1.類型說明符和表達式都必須加括號(單個變量可以不加括號),如把(int)(x+y)寫成(int)x+y則成了把x轉換成int型之后再與y相加了。

2.無論是強制轉換或是自動轉換,都只是為了本次運算的需要而對變量的數據長度進行的臨時性轉換,而不改變數據說明時對該變量定義的類型。

例1:

main()

{

float f=5.75;

printf("(int)f=%d,f=%f\n",(int)f,f);

}

f<--5.75

將float f強制轉換成int f float f=5.75;printf("(int)f=%d,f=%f\n",(int)f,f); 本例表明,f雖強制轉為int型,但只在運算中起作用, 是臨時的,而f本身的類型并不改變。因此,(int)f的值為 5(刪去了小數)而f的值仍為5.75。

很赞哦!(98172)

Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款的名片

职业:程序员,设计师

现居:陕西安康汉滨区

工作室:小组

Email:[email protected]