C语言类型转换理解不同的基本类型为什么能够进行运算

类型转换

  • 1.类型转换
    • 1.1隐式转换
      • 1.2常用算术转换
      • 1.2强制类型转换

1.类型转换

在执行算数运算时,计算机比C语言的限制更多。为了让计算机执行算术运算,通常要求操作数用相同的大小(即为的数量相同),但是C语言却允许混合使用基本类型。在这过程是由于编译器会自动进行隐形转换,当然C语言也允许程序员使用强制运算符执行显示转换。
首先讨论隐式转换

1.1隐式转换

在这里插入图片描述
解释最常用的算术转换

1.2常用算术转换

算数转换多用于二元运算符的操作数上,算数转换是为了能安全地使用两个操作数我们需要相应的数据类型。也就是往往我们进行提升,通俗来说就是一个存储字节大的类型和一个存储字节小的类型,我们倾向与使用都使用存储字节大的类型
最常用的就是整形提升
表达式的整型运算要在CPU的相应运算器件内执⾏,CPU内整型运算器(ALU)的操作数的字节⻓度⼀
般就是int的字节⻓度,同时也是CPU的通⽤寄存器的⻓度。因此,即使两个char类型的相加,在CPU执⾏时实际上也要先转换为CPU内整型操作数的标准⻓度。
执行常用算术转换的规则可以划分成两种情况

  • 任意操作数的类型是浮点型的情况。
    按照float->double->long double,倘若涵盖了混合整数和浮点数类型的情况,那便将整形转换成浮点型
    这就是为什么double sun=1.0/2等于0.000000
    因为默认所给数为整形,1和2都是整形执行除法得到整形0隐性转换成double类型(默认保留六位小数)为0.000000
    而double sum=1.0/2,1.0默认为double类型而2默认为整形,提升整形2被隐性转化为double类型,此时执行的就是为什么除法仅仅要求一个数为浮点数因为另一个操作数会提升
  • 两个操作数的类型都不是浮点型的情况
    int->unsigned int->long int->unsigned long int

尽管提升方便了我们的计算,但也会导致某些隐蔽的编程错误
假设 int a=-10 unsigned int b=10
if(b>a),我们期望该条件为真。但由于提升我们会将有符号数int转换为无符号数unsigned int也就是说我们会把符号位1当成数来表示,因此a会变成一个极大数此时条件为假

1.2强制类型转换

(类型名)表达式

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/35897.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java基础:常用类(四)

Java基础:常用类(四) 文章目录 Java基础:常用类(四)1. String字符串类1.1 简介1.2 创建方式1.3 构造方法1.4 连接操作符1.5 常用方法 2. StringBuffer和StringBuilder类2.1 StringBuffer类2.1.1 简介2.1.2 …

智能电能表如何助力智慧农业

智能电能表作为智能电网数据采集的基本设备之一,不仅具备传统电能表基本用电量的计量功能,还具备双向多种费率计量功能、用户端控制功能、多种数据传输模式的双向数据通信功能以及防窃电功能等智能化的功能。这些功能使得智能电能表在农业领域的应用具有…

【渗透测试】小程序反编译

前言 在渗透测试时,除了常规的Web渗透,小程序也是我们需要重点关注的地方,微信小程序反编译后,可以借助微信小程序开发者工具进行调试,搜索敏感关键字,或许能够发现泄露的AccessKey等敏感信息及数据 工具…

【SkiaSharp绘图11】SKCanvas属性详解

文章目录 SKCanvas构造SKCanvas构造光栅 Surface构造GPU Surface构造PDF文档构造XPS文档构造SVG文档SKNoDrawCanvas 变换剪裁和状态构造函数相关属性DeviceClipBounds获取裁切边界(设备坐标系)ClipRect修改裁切区域IsClipEmpty当前裁切区域是否为空IsClipRect裁切区域是否为矩形…

JFreeChart 生成Word图表

文章目录 1 思路1.1 概述1.2 支持的图表类型1.3 特性 2 准备模板3 导入依赖4 图表生成工具类 ChartWithChineseExample步骤 1: 准备字体文件步骤 2: 注册字体到FontFactory步骤 3: 设置图表具体位置的字体柱状图:饼图:折线图:完整代码&#x…

国产车规MCU OTA方案总结

目录 1. 旗芯微FC4150 OTA 2. 云途YTM32B1MD OTA 3.小结 今天没有废话,啪一下很快,把目前接触到的国内带eFlash的车规MCU硬件OTA方案做一个梳理。 1. 旗芯微FC4150 OTA 旗芯微FC4150是基于ARM Cortex(快去审核下官网介绍,少了个T)-M4F内…

openGauss Developer Day 2024丨MogDB实现数据库技术跨越,Ustore引擎革新存储新境界

openGauss Developer Day 2024 6月21日,openGauss Developer Day 2024在北京昆泰嘉瑞文化中心成功召开。大会聚集学术专家、行业用户、合作伙伴和开发者,共同探讨数据库面向多场景的技术创新,分享基于 openGauss 的行业联合创新成果及实践案例…

探索PHP中的魔术常量

PHP中的魔术常量(Magic Constants)是一些特殊的预定义常量,它们在不同的上下文中具有不同的值。这些常量可以帮助开发者获取文件路径、行号、函数名等信息,从而方便调试和日志记录。本文将详细介绍PHP中的魔术常量,帮助…

web前端——javaScript

目录 一、javaScript概述 1.javaScript历史 2.JavaScript与html,css关系 二、基本语法 ①放在head中 ②放在 body中 ③写在外部的.js文件中 1.变量 2.数据类型 3.算术运算符 4.逻辑运算符 5.赋值运算 6.逻辑运算符 7.条件运算符 8.控制语句 三、函数 1…

Arduino - 按钮 - 长按短按

Arduino - Button - Long Press Short Press Arduino - 按钮 - 长按短按 Arduino - Button - Long Press Short Press We will learn: 我们将学习: How to detect the button’s short press 如何检测按钮的短按How to detect the button’s long press 如何检测…

重大进展!微信支付收款码全场景接入银联网络

据中国银联6月19日消息,近日,银联网络迎来微信支付收款码场景的全面接入,推动条码支付互联互通取得新进展,为境内外广大消费者提供更多支付选择、更好支付体验。 2024年6月,伴随微信支付经营收款码的开放,微…

Rust: duckdb和polars读csv文件比较

一、文件准备 样本内容,N行9列的csv标准格式,有字符串,有浮点数,有整型。 有两个csv文件,一个大约是2.1万行;一个是64万行。 二、toml文件 [package] name "my_duckdb" version "0.1.0&…

VSCode安装OpenImageDebugger

VSCode安装OpenImageDebugger 1. 官网2. 编译2.1 依赖项2.2 编译 OpenImageDebugger2.3 配置 GDB 和 LLDB 3. 验证安装是否成功 1. 官网 下载路径:OpenImageDebugger 2. 编译 2.1 依赖项 官网上描述, Qt 5.15.1Python 3.10.12 这两个其实配置并不需…

图解HTTP笔记整理(前六章)

图解HTTP 第一章 web使用HTTP (HyperText Transfer Protocol,超文本传输协议)协议作文规范,完成从客户端到服务器端等一系列运作流程。 协议:计算机与网络设备要相互通信,双方就必须基于相同的方法。比如…

【论文阅读】--Popup-Plots: Warping Temporal Data Visualization

弹出图:扭曲时态数据可视化 摘要1 引言2 相关工作3 弹出图3.1 椭球模型3.1.1 水平轨迹3.1.2 垂直轨迹3.1.3 组合轨迹 3.2 视觉映射与交互 4 实施5 结果6 评估7 讨论8 结论和未来工作致谢参考文献 期刊: IEEE Trans. Vis. Comput. Graph.(发表日期: 2019&…

HQChart使用教程30-K线图如何对接第3方数据41-分钟K线叠加股票增量更新

HQChart使用教程30-K线图如何对接第3方数据40-日K叠加股票增量更新 叠加股票叠加分钟K线更新Request 字段说明Data.symbol 协议截图返回json数据结构overlaydata HQChart代码地址交流 叠加股票 示例地址:https://jones2000.github.io/HQChart/webhqchart.demo/samples/kline_i…

可以一键生成热点营销视频的工具,建议收藏

在当今的商业环境中,热点营销已经成为了一种非常重要的营销策略。那么,什么是热点营销呢?又怎么做热点营销视频呢? 最近高考成绩慢慢公布了,领导让结合“高考成绩公布”这个热点,做一个关于企业或产品的营销…

鸿蒙NEXT开发:工具常用命令—install

安装三方库。 命令格式 ohpm install [options] [[<group>/]<pkg>[<version> | tag:<tag>]] ... ohpm install [options] <folder> ohpm install [options] <har file> alias: i 说明 group&#xff1a;三方库的命名空间&#xff0c;可…

sys.stdin对象——实现标准输入

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 语法参考 sys.stdin是一个标准化输入对象&#xff0c;可以连续输入或读入文件所有内容&#xff0c;不结束&#xff0c;不能直接使用。输入完成后&am…

print()函数——打印输出

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 print()函数是Python编程最常见的函数&#xff0c;常用于输出程序结果&#xff0c;默认输出到屏幕&#xff0c;也可以输出到指定文件。 语法参考 pr…