什么是整型提升?为什么要使用整型提升?整型提升是如何进行的?
.整型提升在c语言中一些表达式在求值的过程中操作数可能需要转换为其他类型这种转换我们程序员是看不见的称其为隐式类型转换而整型提升就是之一1.1什么是整型提升在C语言中计算整数的时候会将整型家族中小于4字节的类型char short自动变为4字节也就是int类型而这个自动转换的过程我们称作整型提升1.2为什么使用整型提升使用原因和硬件有关CPU中负责整数运算的部件整数运算器ALU以及通用寄存器能够一次性处理的数据的大小为4byte也就是32位的二进制数刚好是C语言中一个int的大小这是32位cpu的一次性处理数据的大小64位是8字节为了能保证CPU的高效运算C语言会默认把小于四个字节的整型数据提升到四个字节64位的CPU同样会先提升到int而int在主流编译器中依旧是4字节不知道有没有8字节的无论是32位CPU还是64位CPU只有当操作数本身无法用int存放时才会使用更长字节的整型举个例子 long long a 100; int b 200; long long c a b; //此时我们在计算ab时编译器就会对b进行整型提升以便于和8byte的long long 类型计算 char d 20; b d b; //同理在计算db时会对d进行整型提升提升为四字节的int1.3截断你可能会问如果上面的例子中我c不是long long类型怎么办计算结果是8byte难道我用int型也能装下吗并非如此因为此时会发生截断。1.3.1什么是截断在数据类型中大字节数的数值放到小字节数的变量中时超出变量存储范围的二进制位高位将会被直接丢弃这个行为被称为截断举个例子 char a 10; int b 10; int c 10; a b c; //此时就会发生截断 //00000000 00000000 00000000 00010100 20的32位补码 //当放进1byte的char中时会发生截断变为00010100但结果依旧是20 但是当被截断的数值过大就有可能会导致数值丢失2.整型提升的过程对于有符号数符号位为1时负数在补码的高位补1直至补到想要提升到的字节数bit位数对于有符号数符号位为0时正数在补码的高位补0直至补到想要提升到的字节数bit位数对于无符号数在补码的高位补0直至补到想要提升到的字节数bit位数举个例子 #includestdio.h int main(void) { char a 0; int b 10; int c 10; a b c; printf(%d,a); return 0; } //bc的值为20补码为00000000 00000000 00000000 00010100 //赋值给a时会发生截断所以a存的补码为00010100但值依旧是20 //由于printf函数在打印时打印的是int但a却是char此时会发生整型提升 //20是正整数char默认为signed char所以在高位补0补码为00000000 00000000 00000000 00010100 再举一个例子 #includestdio.h int main(void) { char a 0; int b 100; int c 100; a b c; printf(%d,a); return 0; } //此时计算结果为200补码为00000000 00000000 00000000 11001000 //赋值给a发生截断补码为11001000 //由于a为signed char所以最高位为符号位 //当我们将它以int类型打印时会发生整型提升最高位为1我们补1 //11111111 11111111 11111111 11001000 补码 //原码就等于补码加1再按位取反先求反码和直接求补码的结果是一样的区别就是一个减一取反一个取反加一 //10000000 00000000 00000000 00111000记住符号位不变原码 我们发现此时的结果变为了-56

相关新闻

【Springboot毕设全套源码+文档】基于Java+springboot电影院票务预定系统的设计与实现(丰富项目+远程调试+讲解+定制)

【Springboot毕设全套源码+文档】基于Java+springboot电影院票务预定系统的设计与实现(丰富项目+远程调试+讲解+定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/7/1 2:16:58阅读更多 →
Tidal 下载器:支持无损音质和视频的开源客户端

Tidal 下载器:支持无损音质和视频的开源客户端

文章目录Tidal 下载器:支持无损音质和视频的开源客户端Tidal 下载器:支持无损音质和视频的开源客户端 Tidal-Media-Downloader-PRO 是一个开源的 Tidal 音乐和视频下载工具,目前在 GitHub 上有 1434 个 Star。项目基于 Python 开发&#xff0…

2026/7/1 2:16:58阅读更多 →
keycloak~关于iframe方式对接keyclock的注意事项

keycloak~关于iframe方式对接keyclock的注意事项

keycloak作为统一的认证中心,提供了单点登录的能力,一般可以通过超链的方式打开keycloak登录页,这对于不同域名来说,是没有任何问题的;第二种对接方式是通过iframe方式,当你的网站与keycloak不同域名时&…

2026/7/1 2:16:58阅读更多 →
Dify AI应用UI定制全攻略:从主题换肤到独立前端开发

Dify AI应用UI定制全攻略:从主题换肤到独立前端开发

如果你正在用 Dify 构建 AI 应用,是否曾有过这样的困惑:为什么我的应用界面看起来和别人的一模一样?当我想把 AI 能力嵌入到自己的产品、官网或内部系统时,那个标准的 Dify 聊天窗口,总显得格格不入。这恰恰是很多开发…

2026/7/1 3:22:07阅读更多 →
政企视频会议私有化:数据主权与合规审计的必答题

政企视频会议私有化:数据主权与合规审计的必答题

政企视频会议的真实痛点:数据主权失控与审计黑洞如何同时出现 一次看似常规的远程会议,可能成为政务、金融单位最隐秘的合规风险敞口。会议中讨论的未公开政策细节、内部敏感数据、甚至屏幕上共享的机密文件,如果经由公有云服务器中转或存储&…

2026/7/1 3:22:07阅读更多 →
Dify私有化部署UI深度定制指南:从主题色到自定义组件

Dify私有化部署UI深度定制指南:从主题色到自定义组件

这次我们来看一个对开发者、产品经理和AI应用构建者都非常实用的主题:如何个性化自定义Dify应用的UI界面。Dify作为一个开源的AI应用开发平台,其核心价值在于让用户无需编写复杂代码,就能通过可视化工作流快速构建和部署AI应用。然而&#xf…

2026/7/1 3:22:07阅读更多 →
AI视频生成实战:Codex与Remotion编程式视频制作全解析

AI视频生成实战:Codex与Remotion编程式视频制作全解析

最近在技术社区和视频创作圈里,Codex 这个名字被频繁提及,与之相关的 Remotion、HyperFrames 等技术也引发了大量讨论。很多朋友,尤其是从事视频剪辑、内容创作的朋友,都在问一个尖锐的问题: Codex 这类 AI 视频工具&…

2026/7/1 3:22:07阅读更多 →
AI应用开发实战:从RAG工程化到智能体工作流设计

AI应用开发实战:从RAG工程化到智能体工作流设计

如果你正在准备AI大模型应用开发岗位的面试,或者想从零开始构建一个能真正跑起来的智能体应用,那么这篇文章就是为你准备的。过去一年,我面试了超过50位候选人,也辅导了上百位开发者。一个最深刻的感受是:绝大多数面试…

2026/7/1 3:22:07阅读更多 →
从AI伯克希尔项目看多Agent协作框架的设计与实现

从AI伯克希尔项目看多Agent协作框架的设计与实现

最近在折腾 AI Agent 开发的朋友,可能都绕不开一个场景:如何让多个 AI 智能体(Agent)协作起来,去完成一个复杂的任务?比如,你想分析一家公司,是不是需要一个“研究员”Agent 去搜集财…

2026/7/1 3:17:06阅读更多 →
AI Coding 六个月真实ROI账本:产品经理的血泪教训,研发的冷静忠告

AI Coding 六个月真实ROI账本:产品经理的血泪教训,研发的冷静忠告

6个月前的2025年12月,Boris Cherny 公开宣布自己卸载了 IDE。一时间,Vibe Coding 成了全行业最热的话题。6个月后,当我们回过头来拉一份真实账本,发现事情远没有"一句话生成一个App"那么浪漫。本文从产品经理和研发两个…

2026/6/30 4:03:30阅读更多 →
审计来了,数据权限全开——审计走了,怎么确保权限全部关掉?

审计来了,数据权限全开——审计走了,怎么确保权限全部关掉?

引言:审计结束三个月了,审计员的权限还没关某城商行每年按照监管要求开展至少一次数据安全审计。审计期间,内审部门需要抽样检查各类业务数据——交易流水、客户信息、员工操作日志、权限配置记录。这些数据分布在不同系统中,审计…

2026/6/30 4:36:27阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/1 0:01:44阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/1 0:01:44阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/1 0:01:44阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/1 0:01:44阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/1 0:01:44阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/1 0:01:44阅读更多 →