類型轉換通常是指變數,從一種類型轉換成另外一種類型。例如將一個long類型轉換成int類型,變數轉換通常 用下麵的方式: 在Objective-C中,我們通常使用CGFloat來做浮點運算,32位是float類型,64位是double類型,通常轉換方式 如下操作: 上面代碼編譯執行後的結果: 這裡說 ...
類型轉換通常是指變數,從一種類型轉換成另外一種類型。例如將一個long類型轉換成int類型,變數轉換通常
用下麵的方式:
(type_name) expression
在Objective-C中,我們通常使用CGFloat來做浮點運算,32位是float類型,64位是double類型,通常轉換方式
如下操作:
#import <Foundation/Foundation.h> int main() { int sum = 17, count = 5; CGFloat mean; mean = (CGFloat) sum / count; NSLog(@"Value of mean : %f\n", mean ); return 0; }
上面代碼編譯執行後的結果:
2013-09-11 01:35:40.047 demo[20634] Value of mean : 3.400000
這裡說明一下,變數的類型轉換優先順序高於除法,即sum優先轉換為double類型(64位情況下),最後通過生成的double值進行除法計算。
類型的轉換可以是隱式的,由編譯器自動執行。
下麵是int類型轉換成方式如下代碼:
#import <Foundation/Foundation.h> int main() { int i = 17; char c = 'c'; /* ascii value is 99 */ int sum; sum = i + c; NSLog(@"Value of sum : %d\n", sum ); return 0; }
上面代碼編譯執行後的結果:
2013-09-11 01:38:28.492 demo[980] Value of sum : 116
sum是116,因為編譯器在執行實際的加法操作之前,先將'c'轉換成了ascii值。
通常的數據轉換流程一般從低向高轉換,如果從高向低轉換會造成數據的丟失。如下圖所示: