我是靠谱客的博主 整齐乌冬面,最近开发中收集的这篇文章主要介绍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看做浮点类型来运算。

最后

以上就是整齐乌冬面为你收集整理的linux下的类型转换的全部内容,希望文章能够帮你解决linux下的类型转换所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(25)

评论列表共有 0 条评论

立即
投稿
返回
顶部