小白适用的C语言数据类型转换及转换规则
点击上方蓝字关注我,了解更多咨询
1.不同类型数据间的混合运算与类型转换:
①若参与运算量的类型不同,则先转换成同一类型,然后进行运算
②转换按数据长度增加的方向进行,以保证精度不降低。如int型和long型运算时,先把int量转成long型后再进行运算
a、若两种类型的字节数不同,转换成字节数高的类型
b、若两种类型的字节数相同,且一种有符号,一种无符号,则转换成无符号类型
③所有的浮点运算都是以双精度进行的,即使仅含float单精度量运算的表达式,也要先转换成double型,再作运算
④char型和short型参与运算时,必须先转换成int型
⑤在赋值运算中,赋值号两边量的数据类型不同时,赋值号右边量的类型将转换为左边量的类型。如果右边量的数据类型长度左边长时,将丢失一部分数据
2.C语言转换规则:
(1)整数和浮点型:
浮点型转换成整型时,小数部分被省略,如果其值不能被整型表示,则其行为未定义。注意:将负的浮点型转换成unsigned int 结果是没有定义的。
当把整型转换成浮点型时,如果该值是在可表示范围内,则结果可能是下一个较高或者较低的可表示值。如果结果在范围外,则行为未定义。
(2)浮点型:
将较低精读浮点型转换成较高浮点型时:值不变。
将较高精度转换成较低精度时:在范围内,值不变,在范围外,结果为定义
(3)整型提升:
如果原始类型都可以用int表示,则将其转换成int,否则被转换成unsigned int
(4)整型转换:
将unsigned 转换成 signed 时,如果可以在新类型表示,则表示,如果不能表示,结果与具体实现有关,将signed 转换成unsigned时,若unsigned位数窄,对二进制补码进行左截取,若unsigned宽,对signed进行符号扩展。
(5)指针和整数:
指针可加上或着减去一个整数,转换规则按照加法运算符号方式进行,两个指向同一数组的指针可进行加减运算,方式按照算数转换规则,值为0的整型常量或者void*型表达式可转换成任意类型的指针,指针可以转换成整型,注意整型必须足够大,整型对象可以转换成指针,一般用于将一个足够宽的从指针转换来的整型转换成(恢复)指针,不同类型的指针间可以相互转换,但必须满足内存对齐条件,一个指针可以转换成同意类型的另一个指针,但是可以增加或者删除另一个指针的限制符,如果和另一个指针,增加了相同的修饰符,则和另一个指针一样,如果删除了修饰符,则底层对象的运算仍受到原声明的限制。
END
*声明:本文于网络整理,版权归原作者所有,如来源信息有误或侵犯权益,请联系我们删除或授权事宜。
戳“阅读原文”我们一起进步
小白适用的C语言数据类型转换及转换规则相关推荐
- C语言数据类型转换(自动类型转换 强制类型转换)
数据类型转换就是将数据(变量.数值.表达式的结果等)从一种类型转换为另一种类型. 自动类型转换 自动类型转换就是编译器默默地.隐式地.偷偷地进行的数据类型转换,这种转换不需要程序员干预,会自动发生. ...
- 解剖C语言---数据类型转换与数据运算集锦
C语言学习笔记 之 数据类型转换与数据运算 一:数据类型转换 (1)自动转换(5+5.000000=?结果是10还是10.000000):发生在不同类型的数据混合运算时,由编译系统自动完成. 不同的 ...
- c语言非布拉数前20个,C语言数据类型转换
数据类型转换,陈孝则,,发生在不同数据类型的量混合运算时,由编译系统自动完成.1若参与运算量的类型不同,则先转换成同一类型,然后进行运算.2.转换按数据长度增加的方向进行,以保证精度不降低.如int型 ...
- c语言强制转换字符类型,C语言数据类型转换实例代码
数据类型转换就是将数据(变量.表达式的结果)从一种类型转换到另一种类型.例如,为了保存小数你可以将int类型的变量转换为double类型. 数据类型转换的一般格式为: (type_name) expr ...
- c语言unsigned char转换成unsigned short,有关c语言数据类型转换之char,unsigned char,unsigned short...
这是一道朗讯的笔试题(我把一些相关资料汇总了一下,希望大家能进来广泛的探讨,不甚感激!) #include int main() { char ca; unsigned char ucb; unsi ...
- C语言数据类型转换详解
数据类型转换就是将数据(变量.数值.表达式的结果等)从一种类型转换为另一种类型. 自动类型转换 自动类型转换就是编译器默默地.隐式地.偷偷地进行的数据类型转换,这种转换不需要程序员干预,会自动发生. ...
- C语言数据类型转换(自动类型转换+强制类型转换)
自动类型转换 自动类型转换就是编译器默默地.隐式地.偷偷地进行的数据类型转换,这种转换不需要程序员干预,会自动发生. 1)将一种类型的数据赋值给另外一种类型的变量时就会发生自动类型转换,例如 floa ...
- c语言 类型转换 小数*int,C语言数据类型转换
数据类型转换就是将数据(变量.表达式的结果)从一种类型转换到另一种类型.例如,为了保存小数你可以将int类型的变量转换为double类型. 数据类型转换的一般格式为: (type_name) expr ...
- Go语言从入门到精通 - 数据类型转换
本节核心内容 介绍 Go语言数据类型转换的格式 介绍 数据转换代码示例 介绍 数据转换过程中的注意事项 本小节视频教程和代码:百度网盘 可先下载视频和源码到本地,边看视频边结合源码理解后续内容,边学边 ...
最新文章
- Android Paint
- linux查看CPU信息
- [云炬创业管理笔记]第二章成为创业者讨论3
- 坑!自己走过的坑...
- 乱想想关于捕获异常后继续执行的实现。
- Android -- WebView进度条
- JS有哪些数据类型?
- 可以作为html5页面开发工具的有,HTML5开发工具有哪些
- BERT-BiLSTM-CRF命名实体识别应用
- python 极客学院 正则表达式
- 十四、中国为什么没有自己的指令集
- 第十一章 Caché 命令大全 HALT 命令
- CC++数组练习题(头歌)朋友圈点赞
- 安卓实现下拉刷新上拉加载
- es的基本操作(创建索引,添加数据,删除数据,判断索引是否存在)
- 百度地图 - 添加区划覆盖物 - 循环打点
- stm32(声音传感器控制LED)
- NDK--利用OpenSL ES实现播放FFmpeg解码后的音频流
- mongo3.0.9库命名的一个S级bug
- NI-VISA写入与读写错误1073807339
热门文章
- 具有外部Zookeeper集成并使用SOLRJ API访问数据的SOLR cloud 7.4集群配置
- web 项目集成福昕_项目学生:Web服务集成
- 应用新的JDK 11字符串方法
- 检测和测试停滞的流– RxJava常见问题解答
- java ee cdi_Java EE CDI处理程序方法示例
- c#编译时提高兼容性_幻像类型提高了编译时的安全性
- mapreduce排序算法_MapReduce算法–二级排序
- jsf集成spring_Spring和JSF集成:转换器
- jsf集成spring_JSF 2,PrimeFaces 3,Spring 3和Hibernate 4集成项目
- 收到有关RabbitMQ集群分区的通知