C语言基础的类型转换有哪些
发表于:2025-01-17 作者:千家信息网编辑
千家信息网最后更新 2025年01月17日,小编给大家分享一下C语言基础的类型转换有哪些,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!类型转换数据有不同的类型,不同类型数据之间进行混合运算时必然涉及到类型的转换问题。转换包括隐
千家信息网最后更新 2025年01月17日C语言基础的类型转换有哪些
小编给大家分享一下C语言基础的类型转换有哪些,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!
类型转换
数据有不同的类型,不同类型数据之间进行混合运算时必然涉及到类型的转换问题。转换包括隐式类型转换和强制类型转换。
类型转换的原则:占用内存字节数少(值域小)的类型,向占用内存字节数多(值域大)的类型转换,以保证精度不降低。
隐式类型转换
隐式转换也称为自动转换,遵循一定的规则,由编译器自动完成。
C的整型算数运算总是至少以缺省整型类型的精度来进行,为了获得这个精度,表达式中的字符和短整形操作数在使用之前都被转换成普通整型,这种转换为整型提升。
整型提升:通用CPU是难以直接实现两个8比特位直接相加运算。所以表达式中各种长度可能小于int长度的整型值,都必须转换为int或者unsigned int ,然后才能送入CPU去执行运算。
代码示例1:
int main(){ char a = 5, b = 126; //5:00000000 00000000 00000000 00000101 //a:0000 0101(截断操作) //126:00000000 00000000 00000000 01111110 //b:0111 1110 //当a和b相加时,都是char类型,就会发生整型提升 //int c = 000000000000000000000000 00000101 + 000000000000000000000000 01111110 //char c = 10000011(整型截断) //以%d 打印,再次在内存中整型提升,再打印原码 //int c = 11111111111111111111111110000011(补码) //打印原码:10000000000000000000000011111101 char c = a + b; printf("%d\n", c); return 0;}
如何整型提升:按照变量的数据类型的符号位来提升。
代码示例2:
//负数的整型提升char s1 = -1;变量s1的二进制补码中只有8个比特位 11111111因为char是有符号的,所以在整型提升的时候,高位补充符号位即:11111111 11111111 11111111 11111111//正数的整型提升char s2 = 1;变量s2的二进制补码中只有8个比特位 00000001因为char是有符号的,所以在整型提升的时候,高位补充符号位即:00000000 00000000 00000000 00000001
无符号数的整型提升,高位直接补0;
代码示例3:
隐式转换
int main(){ int num = 5; printf("s1=%d\n", num / 2); printf("s2=%lf\n", num / 2.0); return 0;}s1=2s2=2.500000请按任意键继续. . .
强制类型转换
强制类型转换指的是使用强制类型转换运算符,将一个变量或表达式转化成所需的类型
代码示例1:
#includeint main(){ float x = 0; int i = 0; x = 3.6f; i = x; //x为实型, i为整型,直接赋值会有警告 i = (int)x; //使用强制类型转换 printf("x=%f, i=%d\n", x, i); return 0;
看完了这篇文章,相信你对"C语言基础的类型转换有哪些"有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!
类型
符号
强制
运算
代码
变量
示例
内存
数据
精度
补码
表达式
高位
基础
语言
语言基础
不同
二进制
值域
只有
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
传奇3服务器进不去怎么办
12123郑州服务器
数字人民币需要网络安全吗
网络安全月知识竞赛
十堰串口服务器厂家
网易我的世界虎牙服务器咋组队
软件开发的销售一般叫什么
数据库查询每种学分的课程数
关系数据库转换为本体
移动云服务器域名
数据库级别包括
网络安全一级应急响应
高密度无线网络技术5g
sql 数据库字段长度
荆州filecoin服务器
可扫爆服务器
设置数据库的root密码
数据库备份的概念
数据库的int32
商业模式 软件开发
中国网络安全机构排名
linux服务器管理规范
防电诈网络安全教育主题班会
电脑提示服务器开小差
上海软件开发月薪
数据库中tno
移动云服务器域名
mysql 地区数据库
电脑后端软件开发好找事吗
学校网络安全存在的隐患