截断整型提升算数转换

请添加图片描述

文章目录

  • 🚀前言
  • 🚀截断
  • 🚀整型提升
    • ✈️整型提升是怎样的
  • 🚀算术转换

🚀前言

大家好啊!这里阿辉补一下前面操作符遗漏的地方——截断、整型提升和算数转换
看这一篇要先会前面阿辉讲的数据的存储否则可能看不懂
不bb了,铁子们开始今天的学习吧!!!

🚀截断

截断:将数据存储在计算机系统中时,由于存储空间的限制或数据类型的限制,数据可能会被截断或缩减

上面的话什么意思呢?
比如一个int类型的数据有32bit位把它放在char类型类型的变量中,但是char类型仅有8bit位,这时高位将被截断,只保留低位的8bit位
同样地,当一个浮点数超出了系统所能表示的范围时,它的小数部分将被截断,只保留有效数字。在字符和字符串的情况下,如果存储空间不足,则会截断字符串的末尾字符或字符串的一部分

例子👇

char c = 0x01020304;//十进制数
return 0;

打开VS中的内存窗口我们看一下c里面存的是啥
在这里插入图片描述

内存窗口是以十六进制形式展示的,c里面仅仅存的是04,发生了截断,前面的十六进制的010203全都截断了

🚀整型提升

C语言中整型算术运算总是至少以缺省整型类型(int)的精度来进行的

缺省就是默认的意思

为了获得这个精度,表达式中的字符和短整型操作数在使用之前被转换为普通整型,这种转换称为整型提升
这是为什么?

因为表达式的整型运算要在CPU的相应运算器件内执行,CPU内整型运算器(ALU)的操作数的字节长度⼀般就是int的字节长度,同时也是CPU的通用寄存器的长度
因此,即使两个char类型的相加,在CPU执行时实际上也要先转换为CPU内整型操作数的标准长度

✈️整型提升是怎样的

对于整型提升分为两种情况:

  • 有符号数整型提升高位补符号位
  • 无符号数高位直接补0

给铁子们上例子👇

//负数的整形提升
char c1 = -1;
变量c1的⼆进制位(补码)中只有8个⽐特位:
1111111
因为 char 为有符号的 char
所以整形提升的时候,⾼位补充符号位,即为1
提升之后的结果是:
11111111111111111111111111111111
//正数的整形提升
char c2 = 1;
变量c2的⼆进制位(补码)中只有8个⽐特位:
00000001
因为 char 为有符号的 char
所以整形提升的时候,⾼位补充符号位,即为0
提升之后的结果是:
00000000000000000000000000000001
//⽆符号整形提升,⾼位补0

下面这段代码,铁子们知道会输出什么嘛

int main()
{char a = 127;char b = 1;char c = a + b;printf("%d\n", a + b);printf("%d\n", c);return 0;
}

输出结果:

128
-128

为什么呢?

因为a+b计算的时候发生了整型提升
127补码->00000000000000000000000001111111
1  补码->00000000000000000000000000000001
a + b->00000000000000000000000010000000 -> 128
但是把这个值赋给char类型的c时会发生截断
c里面存的就是10000000,由于char在VS中是有符号char
所以在用%d打印c时发生整型提升高位补1
11111111111111111111111110000000 ->补码
10000000000000000000000001111111 
10000000000000000000000010000000 ->原码-> -128

🚀算术转换

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

  long doubledoublefloatunsigned long intlong intunsigned intint

如果某个操作数的类型在上面这个列表中排名较低,那么首先要转换为另外一个操作数的类型后执行运算。也就是说:算数转换就高不就低,会把低的转换成高的,也就是把字节数小的转换成字节数大的


如果觉得文章对你有帮助的话,还请点赞,关注,收藏支持博主,如有不足还请指点,博主及时改正,感谢大家支持!!!

请添加图片描述

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

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

相关文章

java如何通过grpc连接etcd_grpc通过 etcd 实现服务发现与注册-源码分析

介绍下面介绍 jupiter-0.2.7 版本中 grpc 通过 etcd 实现服务发现与注册。服务发现与注册的实现解析服务注册服务注册的流程图:etcd的服务注册代码模块在 jupiter/pkg/registry/etcdv3 中。下面让我们来看看实际的代码// Registry register/unregister service// re…

视频光端机各种视频接口的传输距离是多少?

视频光端机将1到多路的模拟视频信号通过各种编码转换成光信号通过光纤介质进行远距离传输。那么,对于视频光端机的各种视频接口以及传输距离你是否详细了解过呢?接下来我们就跟随飞畅科技的小编一起来看看吧! 一、视频信号接口  1.监控视频…

[渝粤教育] 中国地质大学 面向对象程序设计 复习题

《面向对象程序设计》模拟题 一.单选题 1.如果一个类中包含纯虚函数则该类称为(). A.抽象类 B.虚基类 C.派生类 D.子类 2.在类中将show声明为不带返回值的纯虚函数则正确的写法是(). A.virtual void show()0; B.virtual show()0; C.virtual void show(); D.void show()0 virtu…

spring jms 事务_Spring JMS:处理事务中的消息

spring jms 事务1.引言 这篇文章将向您展示使用JMS异步接收消息期间使用者执行过程中的错误如何导致消息丢失。 然后,我将解释如何使用本地事务解决此问题。 您还将看到这种解决方案在某些情况下可能导致消息重复(例如,当它将消息保存到数据…

[渝粤教育] 西南科技大学 智能交通系统 在线考试复习资料

智能交通系统——在线考试复习资料 一、单选题 1.运用多种方式将路线优化结果告知用户的过程称为( )。 A.数据挖掘 B.路线诱导 C.模式识别 D.预测分析 2.( )是根据国家现行财税制度和借个体系,分析、计算投资者或项目直接发生的财务效益和费用,编制财务报表,计算评价指标,考察…

php 脏数据,使用 PHP Masked Package 屏蔽敏感数据

Fuko \ Masked 是 Kaloyan Tsvetkov 的一个小型 PHP 库,用于通过用编辑后的元素替换列入黑名单的元素来屏蔽敏感数据。以下是 软件包 readme 的基本用法示例:use Fuko\Masked\Protect;//隐藏$secret_key var中的值Protect::hideValue($secret_key);//隐藏…

视频数据复用光端机故障排除方法

数字光端机是一种通过数字电路控制光信号,使用类似于0、1代码来实现光通信的机器,广泛应用于光纤通信等领域。那么,我们在使用数据光端机的时候,如果遇到故障该如何来解决呢?接下来我们就跟随飞畅科技的小编一起来详细…

[渝粤教育] 西南科技大学 电子商务原理及应用 在线考试复习资料(1)

电子商务原理及应用——在线考试复习资料 一、单选题 1.( )接受商家的送货要求,将商品送到消费者手中。 A.邮局 B.快递公司 C.送货公司 D.物流中心 2.卓越属于( )类型的B2C电子商务企业: A.经营着离线商店的零售商 B.没有离线商店的虚拟零售企业 C.商品制造商 D.网络交易服务公…

使用AWS Lambda,S3和AWS CloudFront进行动态内容缓存

快速提供内容对于任何网站或应用程序具有更好的客户体验至关重要。 如果您将网站或应用程序托管在AWS Cloud中,那么无论从何处访问应用程序,都可以以较低的延迟快速提供内容。 AWS提供了CloudFront服务,用于将内容缓存在每个用户地理位置本地…

[渝粤教育] 西南科技大学 组织行为学 在线考试复习资料

组织行为学——在线考试复习资料 一、单选题 1.( )是指一个团队的综合情绪控制调节能力。 A.团队学习 B.团队情商 C.团队成员角色 D.团队创建 2.在沟通过程中,由信息发送者选择来向接收者传送信息的媒介物,叫( )。 A.编码 B.解码 C.反馈 D.通道 3.组织风俗属于组织文化的( )。…

php获取页面指定内容,php获取页面指定标签内容的实现代码分享

php获取页面指定标签内容的实现代码分享可以匹配任意可闭合带id标签header ( "Content-type: text/html; charsetutf-8" );/** 参数说明: $tag_id:所要获取的元素Tag Id $url:所要获取页面的Url $tag:所要获取的标签 $data*/function getWebTag($tag_id, $url false…

数据光端机设备性能指标介绍

作为安防监控工程,设备的可靠性应该是第一考虑要素。而数据光端机设备的可靠性是设备厂商在产品设计时就必需考虑的,但是,有些厂商可能会因为某些原因而不愿做或不知道怎么做这方面的工作,在这里着重从工程的角度简单地讨论以下问…

[渝粤教育] 西南科技大学 行政法学与行政诉讼法学 在线考试复习资料(1)

行政法学与行政诉讼法学——在线考试复习资料 一、单选题 1.某省工商局与税务局联名对某公司作出处罚,吊销其营业执照,罚款100万元。该公司提起复议,复议机关是( ) A.国家工商总局 B.国家税务总局 C.国务院 D.省政府 2.行政相对人对下列行为不能申请行政复议的是哪一种?( ) A…

光电转换器有什么作用?光纤收发器如何保养?

光电转换器可以使原来的快速以太网平滑升级,并能充分保护用户原来的网络资源,它也可以称为光纤收发器。光电转换器可以实现交换机和计算机之间的互联,也可以作为传输中继,还可以进行单多模转换。光纤收发器在应用过程中&#xff0…

php中id如何与删除关联,ThinkPHP查询语句与关联查询用法实例

这篇文章主要介绍了ThinkPHP查询语句与关联查询用法,以实例的形式常见的查询方法,包括数组作为查询条件及对象方式来查询等技巧,需要的朋友可以参考下本文实例讲述了ThinkPHP查询语句与关联查询用法。分享给大家供大家参考。具体如下:在thinkphp框架页面中我们可以直…

[渝粤教育] 西南科技大学 货币银行学 在线考试复习资料

货币银行学——在线考试复习资料 一、单选题 1.最严重的恶性通货膨胀的最终结果是( )。 A.突发性的商品抢购 B.挤兑银行 C.货币制度崩溃 D.投机盛行 2.凯恩斯的货币需求函数非常重视( )。 A.恒久收入的作用 B.货币供应量的作用 C.利率的作用 D.汇率的作用 3.下列西方的中央银…

latex段落悬挂缩进_使用正则表达式在Java中悬挂缩进段落

latex段落悬挂缩进这篇文章显示了如何使用正则表达式将缩进的长段落挂起。 该方法将考虑单词边界,这意味着它不会破坏缩进单词。 为了说明此问题,请考虑以下示例: 近年来,人们越来越努力从自然语言文本中提取实体之间的关系。 在…

【渝粤教育】电大中专会计电算化 (2)作业 题库

1下列有关会计电算化狭义概念的说法正确的是()。 A以会计理论为主体的电子信息技术在会计工作中的应用 B与实现电算化有关的所有工作 C以电子计算机为主体的电子信息技术在会计工作中的应用 D与实现电算化有关的主要工作 错误 正确答案:左边查询 学生答案&#xff1…

光纤模块与光纤收发器的区别

随着科技的发展,城市信息化速度的加快,对于通信技术的要求越来越高,光纤以其传输速度快、距离远、安全稳定、抗干扰、扩容便捷等优点越来越成为人们在通讯敷设时的首选。我们经常看到在建筑智能化项目中的远距离数据传输需求,基本…

html中输出PHP的下拉列表,html中关于下拉列表select的图文代码详解

HTML中的下拉列表:Html代码VolvoSaabOpelAudi其中select是显示一个下拉列表(drop down list)出来,option是下拉列表中的项目(item),而option的文本内容(text content)是下拉列表项目中显示到页面上的值,value是真正需要提交到服务…