linux下的型別轉換

2021-04-12 23:32:44 字數 785 閱讀 6787

型別轉換 

型別轉換分為強制型別轉換和隱藏型別轉換,不管是哪種轉換,其實結果都是一樣的,即從一種

型別轉換成另外一種型別。

(1)一種型別和對應的無符號型別的轉換僅僅是記憶體拷貝

比如:int <--->unsigned  int 

char<--->unsigned char

(2)數值表示範圍大的型別轉換為表示範圍小的型別的轉換

比如:int--->char  如int i=0xff31轉換為char型別就成為char c=0x31

僅僅是低位記憶體的拷貝。

但是對於浮點來說,情況有所不同。

float,double轉換為int時,如果沒出現溢位,將把整數部分轉換為整型,

比如:3.33轉換為整型就是3。如果溢位的話,正溢位將是整型(或無符號整形)最小值,

負溢位將是最大值。

(3)數值表示範圍小的型別轉換為表示範圍大的型別的轉換

char--->int時,僅僅是記憶體的拷貝

int--->float時,因為ieee754中定義的float型別符號位1位,尾數23位,如果int中的有效位數

大於23位的時候,可能會出現誤差。

double--->float時,當不溢位時,只會存在精度上的誤差,溢位的時候如果是上溢位。則為inf,下溢位則為-inf.

注意:在實際應用中,最好不要用隱式型別轉換,比如

float f=3/2;跟float f=(float)3/2是不同的,

前者是3/2運算後得1,然後把1轉換為浮點型別,而後者是把3跟2看做浮點型別來運算。

linux 下的編碼轉換

一 利用iconv函式族進行編碼轉換 在linux上進行編碼轉換時,既可以利用iconv函式族程式設計實現,也可以利用iconv命令來實現,只不過後者是針對檔案的,即將指定檔案從一種編碼轉換為另一種編碼。iconv函式族的標頭檔案是iconv.h,使用前需包含之。include iconv函式族有三...

linux下編碼轉換

1.什麼是編碼?還可以參考 2.linux下經常遇到的編碼問題 如果你需要在linux中操作windows下的檔案,那麼你可能會經常遇到檔案編碼轉換的問題。windows中預設的文 件格式是gbk gb2312 而linux一般都是utf 8。3.檢視編碼的方法 方法一 file filename ...

linux下的位元組序轉換

如果你要嘗試編寫linux環境下的網路程式,那麼一定會碰到這個位元組序問題,與其每次碰到的時候都去查詢資料,不如一勞永逸,所以就做了乙個簡圖,可以 作為隨手檢視的資料,這裡所說的均在自己的機器上驗證過,但也都是個人的理解,難免有誤。位元組序,就是計算機在安排資料型別儲存的時候,怎樣儲存資料的高低位。...