用代码拔高你对整型提升与unsigned,signed的理解

news2024/12/23 0:31:54

 

🤩本文作者:大家好,我是paperjie,感谢你阅读本文,欢迎一建三连哦。

🥰内容专栏:这里是《C语言》专栏,笔者用重金(时间和精力)打造,基础知识一网打尽,希望可以帮到读者们哦。

🥴内容分享:本期会用代码提高大家对整型提升和unsigned,signed的理解,各位看官姥爷快搬好小板凳坐好叭。

😘:不要998,只要一件三连,三连买不了吃亏,买不了上当(写作不易,求求了💓)。

目录

🎉写在前面

🎨代码一

🎲代码二

🏆 代码三

🏐代码四

 🎄代码五

✨ 代码六

 🎈代码七

🎃总结


🎉写在前面

unsgned是无符号,signed是有符号,如果没加unsigned或signed一般变量都是默认sigend

整型提升:有符号的高位补符号位,无符号的高位补0

%d:%d是10进制打印有符号的整数

%u:%u是10进制打印无符号的整数

🎨代码一

我们可以知道a,b都是有符号的-1,所以它们的结果一样。c是无符号的-1,在截断的时候符号位也变成数值位了。我们还知道 %d是10进制打印有符号的整数,又因为他们是char变量,就需要整型提升

进行分析

🎲代码二

这里我们要注意,%u是10进制打印无符号的整数,且a是有符号的char类型,所以存入a中需要发生截断

进行分析

🏆 代码三

我们可以发现代码三和代码二非常相识,就是将-128改成了128。我们可以发现128存入char a中的二进制和-128存入char a中的二进制一摸一样。我们猜它们的结果是不是一样呢,下面我们进行分析。

 进行分析

🏐代码四

这里先是以补码的形式计算,在转化为原码,再看打印的符号

进行分析

 

 🎄代码五

 我们可以知道,i从9到0是不会变打印的,一旦它到了负数,因为i是无符号整数,所以i在转化后都是正数,这个循环会一直进行下去,%u是打印无符号的10进制,它的结果就会大变样了。

进行分析

✨ 代码六

 这里我们要注意有符号的char类型的大小-128~127,strlen遇到'\0'就会停下来,'\0'的ASCII码值是0

进行分析

 

 🎈代码七

 我们注意到i是unsigned char类型的,所以它的范围是0~255,我们还要注意跳出循环的条件是i>255

 进行分析


🎃总结

通过上面这些代码的案例的分析和讲解,想必大家对整型提升和unsigned signed的区分和理解已经拔高了一个层次了叭。通过这些代码,我们得明白,想要提高代码水平,我们还是要回归到实践当中 ,通过敲代码的方式直接的去感受代码,联系自己所学的知识点去理解代码,进而又加深了对知识的理解。

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

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

相关文章

Linux下通过 rm -f 删除大量文件时报错:Argument list too long

Linux下通过 rm -f 删除大量的小文件时出现类似如下错误信息: -bash: /bin/rm: Argument list too long 如下图所示: 问题原因 如果待删除文件中包含的小文件数量过多,通常是由于受到 shell 参数个数限制所致。 这个是Linux系统存在的限制&…

若依源码解析:代码生成ruoyi-generator

文章目录 摘要代码生成器的使用数据库连接配置数据库表设计代码生成器配置修改mybatis别名配置,增加对com.cyl包名的识别修改mybatis的mapper扫描包路径 代码生成代码输出模板配置 代码生成器原理模板引擎:Velocity使用Velocity模板引擎的一般流程模板语…

前端技术搭建贪吃蛇小游戏(内含源码)

The sand accumulates to form a pagoda ✨ 写在前面✨ 功能介绍✨ 页面搭建✨ 样式设置✨ 逻辑部分 ✨ 写在前面 上周我们实通过前端基础实现了井字游戏,今天还是继续按照我们原定的节奏来带领大家完成一个贪吃蛇游戏,功能也比较简单简单,也…

第四章 Text

目录 TextFontsGlyphsFont TypesThe Font DictionaryEncodings Text StateFont and SizeRendering Mode Drawing TextPositioning TextWhat’s Next Text 在本章中,您将学习如何在页面上绘制文本。 绘图文本是 PDF 图形中最复杂的部分,但它也是帮助 PDF…

【Netty】Netty中的超时处理与心跳机制(十九)

文章目录 前言一、超时监测二、IdleStateHandler类三、ReadTimeoutHandler类四、WriteTimeoutHandler类五、实现心跳机制5.1. 定义心跳处理器5.2. 定义 ChannelInitializer5.3. 编写服务器5.4. 测试 结语 前言 回顾Netty系列文章: Netty 概述(一&#…

太坑了,盘点BeanUtils.copyProperties的11个小坑

我们日常开发中,经常涉及到DO、DTO、VO对象属性拷贝赋值,很容易想到org.springframework.beans.BeanUtils的copyProperties 。它会自动通过反射机制获取源对象和目标对象的属性,并将对应的属性值进行复制。可以减少手动编写属性复制代码的工作…

“游蛇”大规模邮件攻击针对中国用户

近半年黑客团伙频频对我国实施攻击活动。研究人员发现,“游蛇”黑产团伙自2022年下半年开始至今,针对中国用户发起了大规模电子邮件攻击活动。 黑客使用电子邮件在内的多种传播方式。 该团伙利用钓鱼邮件、伪造的电子票据下载站、虚假应用程序下载站、…

eclipse固件库生成的操作流程

一.方法介绍 有时候我们需要将某个功能模块封装成一个库,只留出接口供别人使用,那么就需要打包处理,eclipse是如何操作的呢?本文仅仅讨论我所知道的两种方式,倘若还有更简便的方法也非常欢迎网友补充。 1.在已有的工…

【PyQt5】使用QtDesigner创建Splitter

目录 Splitter效果演示 目前在Qt Designer无法检索到QSplitter。 实现方式: 1.同时选中两个需要实现splitter样式的控件,以QTreeWidget和QTableWidget为例; 2.右击–>布局–>使用分裂器(根据需求选择水平或垂直布局&#x…

Groovy系列二 Groovy GDK

目录 Groovy中自带集合方法 sort方法对集合排序 findAll 查询所有符合条件的元素 collect 返回 一个新的list inject 强大的累计功能 each、eachWithIndex find、findIndexOf 查询符合条件的数据 any判断符合条件的数据 every查询所有条件都满足的数据 reverse将集合…

linux下安装EclipseCDT:离线安装与在线安装

文章目录 前言:1. 离线下载1.1 下载EclipseCDT1.2 下载jdk1.3 安装jdk1.4 安装eclipse 2. 在线安装:2.1 安装jdk2.2 安装EclipseCDT2.2.1 简单安装2.2.2 ubuntu官方推荐安装方式2.2.3 apt安装(报错logo) 总结: 前言: Eclipse使用…

ChatGPT对软件测试的影响

本文首发于个人网站「BY林子」,转载请参考版权声明。 ChatGPT是一个经过预训练的AI语言模型,可以通过聊天的方式回答问题,或者与人闲聊。它能处理的是文本类的信息,输出也只能是文字。它从我们输入的信息中获取上下文,…

Spring 日志文件

日志 日志是程序的重要组成部分,日志可以:a.记录错误日志和警告日志(发现和定位问题)b.记录用户登录日志,方便分析用户是正常登录还是恶意破解用户c.记录系统的操作日志,方便数据恢复和定位操作人d.记录程序的执行时间,方便为以后优化程序提供数据支持 日志使用 SpringBoot …

东风/小米投资!去年EHB出货20万台,这家公司获科技进步一等奖

5月26日上午,2022年度上海市科学技术奖励大会在上海展览中心中央大厅召开,隆重表彰为国家、为上海科技事业和现代化建设作出突出贡献的科技工作者。同驭汽车与同济大学等单位联合申报的“汽车线控制动系统关键技术及产业化”项目获得科技进步奖项目一等奖…

【CCNP | 网络模拟器GNS系列】安装、配置和使用 GNS3

目录 1. 下载 GNS31.1 GitHub下载(推荐)1.2 官方下载(示例) 2. 安装GNS3(1)进入GNS3设置界面(2)许可协议(3)选择启动目录文件夹(4)选择…

ArcGIS中制作一张985、211院校分布图

一、数据来源及介绍 1.985、211院校名录 985、211院校名录主要来源于网络。 2.行政边界数据 行政边界数据来源于环境资源科学与数据中心(中国科学院资源环境科学与数据中心 (resdc.cn)),该网站包含我们国家任何一个省市的行政边界&#xf…

2024考研408-计算机组成原理第二章-数据的表示

文章目录 一、数制与编码1.1、进位计数制1.1.1、计数方法(最古老计数方法、十进制计数、r进制计数)1.1.2、进制转换①任意进制转为十进制②二进制转八进制、十六进制③八进制、十六进制转二进制④十进制转任意进制(包含整数、小数&#xff0c…

Python绘图神器Plotly安装、使用及导出图像教程

1. Plotly安装 Plotly 是一个快速完善并崛起的交互式的、开源的绘图库库,Python 库则是它的一个重要分支。现已支持超过40种独特的图表类型,涵盖了广泛的统计、金融、地理、科学和三维用例。 Python 中可以使用 pip 或者 conda 安装 Plotly&#xff1a…

使用校园账号登录WOS(Web of Science)并检索文献

使用校园账号登录WOS(Web of Science)并检索文献 写在最前面登录WOS检索文献文献检索文献检索结果分析文章类型(Document Types)发表年份(Publication years)期刊(Publication/Source Titles&am…

chatgpt赋能python:Python中n个数相加–实现简单、计算准确

Python中n个数相加 – 实现简单、计算准确 Python是一门功能强大的编程语言,能够在各个领域得到广泛应用。在数据处理和科学领域,Python是最受欢迎的编程语言之一。在Python中,n个数相加是一种常见的操作,它可以在数据处理中做到…