c语言中的整形提升和算数转换

整形提升:

表达式中字符和短整型操作数在使用之前转换为普通整形

分为两种:

有符号整形 提升:按照变量的数据类型的符号位来提升

无符号整形 提升:按照高位补0的方式及进行提升

例如:char a=20;char b=130;char c=a+b;求出c的值

20的二进制编码为://00000000000000000000000000010100

因为char占一个字节,所以采用截取的方式保留8位:

所以在char中20的二进制编码为://00010100

同理130为://10000010

进行相加时:如以上方式按照符号位进行提升(char是否是signed char取决于编译器)

所以20对应//00000000000000000000000000010100

130对应//11111111111111111111111110000010

按位进行相加加完后是//11111111111111111111111110010110 这是补码的形式

求出原码,符号位不变取反加一://1000000000000000000000001101010

c在char中所以截取8位为://01101010 为106,所以c的值为-106

算数转换:

讨论的是类型大于整形的的实现

向上转换:1:long double

2:double

3:float

4:unsigned long int

5:long int

6:unsigned int

7:int

例如:int a=10;float c=20;则z+c就是float类型的,要向上转换

相关推荐
未来之窗软件服务1 小时前
幽冥大陆(一百12)js打造json硬件管道——东方仙盟筑基期
开发语言·javascript·算法·json·仙盟创梦ide·东方仙盟·东方仙盟算法
人道领域1 小时前
苍穹外卖:菜品分页查询与删除功能(保姆级详解)
java·开发语言·数据库·后端·spring
爱编码的小八嘎1 小时前
C语言完美演绎3—8
c语言
EverestVIP1 小时前
c++前置声明的方式与说明
开发语言·c++
天远云服2 小时前
天远企业司法认证API对接实战:PHP构建B2B供应链合规防火墙
大数据·开发语言·后端·node.js·php
空空kkk3 小时前
Java基础——代理
java·开发语言
赵谨言3 小时前
基于YOLOv5的植物目标检测研究
大数据·开发语言·经验分享·python
野生技术架构师3 小时前
互联网大厂必备 Java 面试八股文真题解析
java·开发语言·面试
不光头强3 小时前
IO流知识点
开发语言·python
老约家的可汗3 小时前
C++篇之类和对象下
java·开发语言·c++