linux下的类型转换

类型转换 
类型转换分为强制类型转换和隐藏类型转换,不管是哪种转换,其实结果都是一样的,即从一种
类型转换成另外一种类型。

(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看做浮点类型来运算。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值