整形提升

2024-08-23 23:36
文章标签 提升 整形

本文主要是介绍整形提升,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

有任何不懂的问题可以评论区留言,能力范围内都会一一回答

整型提升 (Integral Promotion)是指在计算机编程中,当不同类型的整数类型进行运算时,较小类型的整数会被自动转换为更大类型的整数,以确保运算的正确进行。这种类型转换主要涉及 char 、 short 等小型整数类型和 int 类型。

整型提升的意义在于,CPU的运算器通常设计为以int类型的宽度进行数据操作,因此,为了确保运算的精度和效率,表达式中的char和short类型的操作数必须先转换为int类型,然后才能送入CPU进行处理。

整型提升的规则如下:

对于有符号的char和short类型,提升时在左端补得是最高位(符号位),正数补0,负数补1。
对于unsigned char和unsigned short类型,提升时在左端补0,结果总是正数。

整型提升是编程中的一个重要概念,它帮助确保各种整数类型之间的运算能够正确地进行,同时也提高了程序的兼容性和可移植性。

前言:
char 是一个字节8比特,
作为无符号范围是0到255
作为有符号的范围-128到127
所有编译器int 都默认是signed int 
但是char类型不同编译器是不同的,不过vs是signed char

根据以上内容

        我们直接来试一道题

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void) {char a = 130;char b = 120;printf("%d\n %d\n", b ,a+b);return 0;
}

这个题目的结果不120和250

因为 char 作为有符号的范围-128到127

vs是signed char(博主用的是vs)

那我们这个时候可以用整形提升来算这道题了

char是八位的,int是32
(这个数据使用时会被转换成int类型)
130 原码补码反码 1111 1111 1111 1111 1111 1111 1000 0010
120 原码补码反码 0000 0000 0000 0000 0000 0000 0111 1000
相加得           1111 1111 1111 1111 1111 1111 1111 1010
截断成char类型1111 1010(但是由于这个变量是char类型因此数据在存储时要被截断)
又因为打印是int类型(这个数据使用时会被转换成int类型)
故为这个是补码 1111 1111 1111 1111 1111 1111 1111 1010
        原码为 1000 0000 0000 0000 0000 0000 0000 0110
        也就是-6;

因此打印结果就是120和-6

这篇关于整形提升的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1100818

相关文章

C#使用yield关键字实现提升迭代性能与效率

《C#使用yield关键字实现提升迭代性能与效率》yield关键字在C#中简化了数据迭代的方式,实现了按需生成数据,自动维护迭代状态,本文主要来聊聊如何使用yield关键字实现提升迭代性能与效率,感兴... 目录前言传统迭代和yield迭代方式对比yield延迟加载按需获取数据yield break显式示迭

java学习,进阶,提升

http://how2j.cn/k/hutool/hutool-brief/1930.html?p=73689

JAVA用最简单的方法来构建一个高可用的服务端,提升系统可用性

一、什么是提升系统的高可用性 JAVA服务端,顾名思义就是23体验网为用户提供服务的。停工时间,就是不能向用户提供服务的时间。高可用,就是系统具有高度可用性,尽量减少停工时间。如何用最简单的方法来搭建一个高效率可用的服务端JAVA呢? 停工的原因一般有: 服务器故障。例如服务器宕机,服务器网络出现问题,机房或者机架出现问题等;访问量急剧上升,导致服务器压力过大导致访问量急剧上升的原因;时间和

提升PrestaShop外贸电商网站安全的几款行业必备工具

提升PrestaShop外贸电商网站安全的几款行业必备工具 PrestaShop发展历程 PrestaShop是一款优秀且强大的外贸开源电商软件,我们开始使用PrestaShop始于2009年,那时PrestaShop还是0.9版本:界面清新,性能强悍,扩展友好等特性,既没有Magento的笨重,也没有ZenCart的古老,更没有OpenCart的脆弱,因此PrestaShop如雨后春笋,迅速

Axure元件库Ant Design中后台原型模板:提升设计与开发效率的利器

企业对于中后台产品的设计与开发需求日益增长。为了提升用户体验和开发效率,设计者和开发者们不断寻求更加高效、统一的解决方案。Ant Design,作为阿里巴巴开源的一套企业级UI设计语言和React组件库,凭借其丰富的组件和统一的设计风格,已成为众多项目的首选。而在Axure中使用Ant Design元件库,更是为中后台产品的原型设计带来了极大的便利。 Ant Design简介 Ant D

【JavaScript】let与var的区别及变量、函数提升

有var与无var的区别   在函数内部,有var和没var声明的变量是不一样的。有var声明的是局部变量,没var的,声明的全局变量,所以可以借此向外暴露接口。 let与var的区别   在上面代码中,我们使用var语句声明变量x。因此,变量x的范围是函数范围。if语句内的变量x就是if语句外创建的变量x。因此,在你修改if语句块内变量x的值的时候,也会修改函数中变量x的所有引用的

如何通过食堂采购小程序端降低成本,提升效率?

随着数字化管理工具的普及,越来越多的食堂正在引入小程序来优化采购流程,减少成本和提升效率。食堂采购小程序端通过技术手段实现了自动化、智能化的管理方式,为管理者提供了极大的便利。本文将探讨如何利用技术手段开发一个高效的食堂采购小程序端,并提供一些代码示例,帮助你理解其背后的实现原理。 1. 简化采购流程 在食堂采购小程序中,简化采购流程是核心目标之一。我们可以利用数据库和后端服务来实现快速下单

自我提升社团成立啦,欢迎各位同学加入~

欢迎加入 大家好,我是马丁,我们的自我提升社团成立啦,欢迎有新的朋友加入!! 我们的社团主要目标是帮助每个人实现自我成长、自我提升,不论他是什么年龄、什么经验、什么专业,只要有一个好学和想进步的心,都可以加入。 为了提升帮助每个人实现自我成长,目前社团选择的是做一个智能客服系统,我们希望通过搭建一个企业级的智能客服系统来帮助每个人实现自我成长。后续,还会开发更多系统~ 目前群里大多是Jav

全能AI神器!工作效率提升80倍!Zmo.ai带你玩转AI做图!

今天,我要给大家介绍一款神器:Zmo.ai。 这个平台简直是做图神器,集多种功能于一身,让你像专业人士一样轻松创建和编辑图像,不需要任何美术与设计基础,真的非常适合我们这些“手残党”! 我们只需单击按钮即可从文本或图像生成令人惊叹的 AI 艺术、图像、动漫和逼真的照片,最关键的是它的功能真的很全啊! Zmo.ai旗下产品分类: AI照片生成器 AI动漫生成器 AI照片编辑器 A

Xinstall助力App全渠道统计,参数传递下载提升用户体验!

在移动互联网时代,App已成为我们日常生活中不可或缺的一部分。然而,对于App开发者来说,如何有效地推广和运营自己的应用,却是一个不小的挑战。尤其是在面对众多渠道、复杂的数据统计和用户需求多样化的情况下,如何精准地触达目标用户,提升用户的下载、安装和活跃度,更是考验着每一个运营者的智慧。 今天,我们就来揭秘一个能够帮助App开发者解决这些痛点的神器——Xinstall。作为一家一站式App全渠道