当前位置: 首页 > news >正文

网站综合查询工具鄂州网络推广

网站综合查询工具,鄂州网络推广,深圳网站建设 乐云seo,网站建站解决方案C语言中的类型转换 隐式类型转换 整型提升 概念: C语言的整型算术运算总是至少以缺省(默认)整型类型的精度来进行的为了获得这个精度,表达式中字符和短整型操作数在使用之前被转换为普通整型,这种转换成为整型提升 如…

C语言中的类型转换

隐式类型转换

整型提升

概念:

  • C语言的整型算术运算总是至少以缺省(默认)整型类型的精度来进行的
  • 为了获得这个精度,表达式中字符和短整型操作数在使用之前被转换为普通整型,这种转换成为整型提升

如何进行整型提升

  • 整型提升是按照变量的数据类型的符号位来提升的

  • 注1:如果对二进制,原码,反码,补码还不是特别了解,建议先看看二进制,原码,反码,补码>

  • 注2:

    • %d是以十进制形式打印有符号整数,对字符和短整型进行整型提升时,高位补符号位

    • %u是以十进制形式打印无符号整数,对字符和短整型进行整型提升时,高位补0

  • 举个例子:

    #include<stdio.h>
    int main()
    {char num_1 = 5;/*数字5是一个整型数据,在内存中的存储形式为:0000 0000 0000 0000 0000 0000 0000 0101由于要存入char型变量中,而char只有一个字节,因此要进行截断num_1 = 0000 0101*/char num_2 = 127;/*数字127是一个整型数据,在内存中的存储形式为:0000 0000 0000 0000 0000 0000 0111 1111由于要存入char型变量中,而char只有一个字节,因此要进行截断num_1 = 0111 1111*/char num_3 = num_1 + num_2;/*由于整型提升,字符型数据num_1, num_2在使用之前要提升为int型(高位补符号位0)num_1 = 0000 0000 0000 0000 0000 0000 0000 0101num_2 = 0000 0000 0000 0000 0000 0000 0111 1111num_3 = 0000 0000 0000 0000 0000 0000 1000 0100进行整形阶段num_3 = 1000 0100 */printf("num_3 = %d\n", num_3);/*%d是以十进制的形式打印有符号整数char num_3 = 1000 0100,符号位为1整型提升:  1111 1111 1111 1111 1111 1111 1000 0100补码转反码:1111 1111 1111 1111 1111 1111 1000 0011反码转原码:1000 0000 0000 0000 0000 0000 0111 1100 -> -124*/return 0;
    }
    
  • 下面两个例子也能说明整型提升的存在:

    Eg1:
    #include<stdio.h>
    int main()
    {char num_1 = 0xb6;short num_2 = 0xb600;int num_3 = 0xb6000000;if (0xb6 == num_1)printf("num_1\n");/*num_1 = 1011 0110整型提升:1111 1111 1111 1111 1111 1111 1011 0110明显,与0xb6不相等*/if (0xb600 == num_2)printf("num_2\n");/*num_2 = 1011 0110 0000 0000整型提升:1111 1111 1111 1111 1011 0110 0000 0000可见,与0xb600不相等*/if (0xb6000000 == num_3)printf("num_3\n");/*num_3就是int型,不要整型提升,因此num_3即为0xb6000000*/return 0;
    }
    

Eg2:
#include<stdio.h>
int main()
{char num = 1;printf("sizeof(num) = %u\n", sizeof(num));printf("sizeof(+num) = %u\n", sizeof(+num));printf("sizeof(-num) = %u\n", sizeof(-num));//%u是以十进制的形式打印无符号整数,由于操作符sizeof的值一定是整数,因此用%u打印/*由于num参与了运算,因此要整型提升为int型	*/return 0;
}

算术转换

  • 如果某个操作符的各个操作数属于不同的类型,那么除非其中的一个操作数的转换为另一个操作数的类型,否则操作就无法进行。下面的层次体系称为寻常算术转换

    long double
    double
    float
    unsigned long int
    long int
    unsigned int
    int
    //向上转换    /*没有char和short类型,是因为在使用时char和short要先整型提升为int
    */
    
  • 例如执行程序:

    int num_1 = 5;
    float num_2 = 3.14;
    float num_3 = num_1 + num_2;
    
  • num_1和num_2相加时,int要先转换为float类型,再和num_2相加

http://www.yayakq.cn/news/451792/

相关文章:

  • 企业网站优化官网网址提交
  • html网站设计模板下载做微网站常用软件
  • 网站建设合同书相关附件自己制作app软件
  • 怎么修改网站标题一诺网站建设
  • 手机怎么做网站服务器网络营销案例分析和启示
  • 网站后台没有编辑器wordpress版权说明
  • 青岛开发区建网站公司网站建设设计费用摊销年限
  • 做自己网站网站底部图片代码
  • 烟台网站开发安卓安装wordpress
  • html5旅游网站做公司网站注意事项
  • 做外贸收费的网站上海怎么做网站
  • 网站管理人员队伍建设说明材料网站的统计 怎么做
  • 网站域解析查询工商个体户年检网上申报
  • 怎样做微网站河北君卓展览装饰有限公司
  • iis 配置网站 404页面wordpress怎么精简
  • 外链是不是把自己的网站信息发布到别人的网站上?德保网站建设
  • 玩具租赁系统网站开发与实现拼多多网上购物入口
  • 做软件的网站php泉州丰泽建设局网站
  • 做本地网站卖浙江省建设监理协会网站
  • 模板网站有什么不好类似织梦cms
  • 公司名称被大量网站收录dede网站备份
  • 安徽中小企业网站建设网站建设技巧讠金手指排名26
  • 有什么网站建设软件有哪些网络营销的案例
  • 南昌企业做网站设计康巴什住房和城乡建设局网站
  • 免费建设网站公司哪家好重庆短视频seo优化推荐
  • 专门做悬疑推理小说的阅读网站网站要做手机版怎么做
  • 心连网网站莱西做网站
  • 网站的推广方案设计公司展厅怎么和设计公司交谈
  • 企业交易平台的网站制作多少钱c2c网站代表有哪些
  • 公司网站搜索引擎优化女生学ui设计好就业吗