c語言強制轉換
⑴ c語言強制類型轉換
強制類型轉換是把變數從一種類型轉換為另一種數據類型。
例如,如果想存儲一個long類型的值到一個簡單的整型中,需要把long類型強制轉換為int類型。可以使用強制類型轉換運算符來把值顯式地從一種類型轉換為另一種類型。
發生在同一個編譯系統中,比如說把int轉化為longint,在VC++6.0裡面,longint和int都是4個位元組,不會有問題的,但是如果把int類型轉化為short類型那就裝不下了,簡而言之就是長類型不能轉化為短類型。
int類型如果要轉化為float、double、longdouble類型的時候只是末尾多了幾個0,但是反之轉化,就會出現數據的損失,小數部位都被省略掉了。
賦值中的類型轉換
當賦值運算符兩邊的運算對象類型不同時,將要發生類型轉換, 轉換的規則是:把賦值運算符右側表達式的類型轉換為左側變數的類型。
由於C語言中的浮點值總是用雙精度表示的,所以float 型數據只是在尾部加0延長為double型數據參加運算,然後直接賦值。double型數據轉換為float型時,通過截尾數來實現,截斷前要進行四捨五入操作。
以上內容參考:網路-C語言類型強制轉換
⑵ C語言強制轉換問題
程序本身是正常運行的,而且有結果,只不過結果是一個怪怪的東西,標示這個浮點數有問題。
這種情況下,由於除法運算的第一個操作數為double型,那麼除數a也被先提升為double型然後參與運算。浮點運算中,除0錯誤的結果不是一個運行時異常,而是得到一個「Not A Number」的特殊浮點值作為結果
⑶ C語言中的強制轉換類型
你要知道,c語言是一個強類型的語言,也就是說當類型不匹配的時候通常情況下不用特別說明,系統都可以自動進行轉換。
比如當你把一個字元型的變數賦給一個整形時,系統會得到該字元的asc碼值(數據在內存當中都以asc碼的二進制形式保存),然後將該值賦給整形變數。當然,必要的時候需要你自己給出轉換的方式,就是把數據轉換成什麼類型。
⑷ C語言中類型強制轉換什麼意思通俗點怎麼解釋,不要定義
類型轉換嘛,很容易理解的啦。
類型轉換分兩種,一種是水到渠成的轉換,這種轉換沒有任何錯誤,不會損失精度(比如1.23 不會變成1.2)、不會超出值域,是不帶強制性的,這種轉換是不用強制指定的,程序會自動完成,反正也不會對你的數字產生任何不好的影響。(就像小孩子希望自己馬上長大,然後作為一個神,你就立馬實現了他的願望,反正他將來一定會混成這逼樣的。。。)
另一種轉換是會產生不好的影響的,換句話說,也就是需要付出一些代價的,比如精度,你把要3.1415926535897936轉成成單精度的浮點數,他就會成為3.141592,然後後面的精度就沒有了,這是精度的損失。還有就是值域的損失,你把一個int值給一個short,int值有4個位元組,short只有2個位元組,後者壓根就表示不了那麼大的數字,所以就只能截斷取數字了。這兩種損失都會對程序產生可能的負面影響,所以需要強制執行。
⑸ c語言中有關數據類型的強制轉換
char
c
=
-3;//(fd)H
你把c強轉成unsigned就成了unsigned形式的(fd)H,也就是253(=128+64+34+16+8+4+1),因為unsigned形式只存在正數,253的unsigned
char會被強轉成long,還是253,然後就,5+4*(253)
=
1017,所以結果是1017。
還好你知道補碼,否則這問題要有得講了。
⑹ c語言強制類型轉換
1、int a;int b;double c = (double) a;double c = (double) b;int a = (int) c;這就是一種強制轉變方法。
⑺ C語言強制轉換
強制轉換在編寫socket的時候用的比較多,因為經常要將獲得的數據流轉換成需要的格式。也有使用ASCii傳輸的,這個不需要轉換,但是不支持中文傳輸。
其餘的時候用的也多,經常將文本框內的數值轉來轉去的。
⑻ 關於C語言強制類型轉換
當然不可以,你可以參加教材後面的有關「運算符的附錄」,了解 強制類型轉換運算符 的用法。
⑼ C語言強制類型轉換表達式
強制類型轉換是把變數從一種類型轉換為另一種數據類型。
例如,如果您想存儲一個 long 類型的值到一個簡單的整型中,您需要把 long 類型強制轉換為 int 類型。您可以使用強制類型轉換運算符來把值顯式地從一種類型轉換為另一種類型。
(9)c語言強制轉換擴展閱讀:
舉例說明
使用強制類型轉換運算符把一個整數變數除以另一個整數變數,得到一個浮點數:
#include <stdio.h>int main()
{
int sum = 17, count = 5;
double mean;
mean = (double) sum / count;
printf("Value of mean : %f
", mean );
}
當上面的代碼被編譯和執行時,它會產生下列結果:
Value of mean : 3.400000