C语言 int和unsigned int逻辑比较

文章目录

  • 测试
    • 1、测试 CMP (int,int)
    • 2、测试 CMP (int ,unsigned int)
    • 3、测试 CMP (unsigned int ,unsigned int)
    • 4、测试 CMP(int ,常量)
  • 总结

测试

  • 在IAR(8.40.2)平台下测试
  • 单片机为STM32F103ZET6

1、测试 CMP (int,int)

//a = -2,b = 3
int test_fun(int a,  int b)
{if(a>b){return 1;}else{return 0;}
}
//执行结果 0  正常

在这里插入图片描述

2、测试 CMP (int ,unsigned int)

//a = -2,b = 3
int test_fun(int a, unsigned int b)
{if(a>b){return 1;}else{return 0;}
}
// 执行结果 1 异常

在这里插入图片描述

3、测试 CMP (unsigned int ,unsigned int)

//a = -2,b = 3
int test_fun(int a, unsigned int b)
{if((unsigned int)a>b){return 1;}else{return 0;}
}
// 执行结果 1 异常 汇编结果同测试2

在这里插入图片描述

4、测试 CMP(int ,常量)

	test_fun(-2, 3);//int a = -2;//if(a > 100)   =>false    等价于 if(a > (int)100)//if(a >100U)   =>true     等价于 if(a > (unsigned int)100)printf("%d",a > 0x7FFFFFFA);//falseprintf("%d",a > 0x8FFFFFFA);//true

总结

  • 1、判断两边符号相同时,判断结果和理论一样是正常的。
  • 2、判断两边符号不相同时,判断结果会和理论不一样,需要进行类型转换后再做比较。
    • int和unsigned int 比较时,int会自动转换为unsigned int类型。其实也就是将int类型存储数值的补码当作unsigned int数据处理了。
    • 正数的补码等于原码,负数的补码等于反码+1。负数强转为正数,直接将负数补码当作原码处理就是强转后的值。
  • 3、都为int类型的判读汇编语句和都为unsigned int类型的判断汇编语句是不一样的。
  • 4、在人为判断结果时,
    • 如果判断两边符号相同,则以理论比较结果为准。(该谁大就谁大)
    • 如果判断两边符号不相同,则需要将符号转换后再做比较。(负数强转正数时,取其补码当原码)
  • 5、在32位单片机平台中,常量默认为int类型。如果有特殊需求,需要对常量进行类型修饰。

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

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

相关文章

二次供水物联网:HiWoo Cloud助力城市水务管理升级

随着城市化的快速推进,二次供水系统作为城市基础设施的重要组成部分,其稳定运行和高效管理显得至关重要。然而,传统的二次供水管理方式在应对复杂多变的城市供水需求时,显得力不从心。为了破解这一难题,HiWoo Cloud平台…

StarRocks实战——携程酒店实时数仓

目录 一、实时数仓 二、实时数仓架构介绍 2.1 Lambda架构 2.2 Kappa架构 三、携程酒店实时数仓架构 3.1 架构选型 3.2 实时计算引擎选型 3.3 OLAP选型 四、携程酒店实时订单 4.1 数据源 4.2 ETL数据处理 4.3 应用效果 4.4 总结 原文大佬的这篇实时数仓建设案例有借…

龙蜥OS 尝试

> 尝试一下龙蜥OS,和Centos8应该没什么区别。 阿里云版本龙蜥 https://alinux3.oss-cn-hangzhou.aliyuncs.com/aliyun_3_x64_20G_nocloud_alibase_20230727.vhd Index of /anolis/8.8/isos/GA/x86_64/ (openanolis.cn) 网卡 我在虚拟机上安装完后,…

Spring常见面试题知识点总结(二)

4. 面向切面编程(AOP): AOP的基本概念。 AOP(Aspect-Oriented Programming,面向切面编程)是一种编程范式,旨在通过切面(Aspect)将横切关注点与核心业务逻辑分离&#x…

Chondrex--Mouse Anti-OVA IgG1 Antibody Assay Kit

卵清蛋白(ovalbumin, OVA)是鸡蛋清中的主要蛋白成分,是一种大而复杂的糖蛋白,能够引起机体适度的免疫性,常用作各种免疫学研究的抗原。OVA已被用于诱导IgE介导的疾病,评估疫苗递送方法,以及通过…

动态规划|【斐波那契数列模型 】|面试题08.01三步问题

目录 题目 思路 普通思路 动态规划思路 1.状态表示 2.状态转移方程 3.初始化 4.填表顺序 5.返回值 代码 空间优化 题目 题目链接 面试题 08.01. 三步问题https://leetcode.cn/problems/three-steps-problem-lcci/ 三步问题。有个小孩正在上楼梯,楼梯有n…

springboot-基础-添加model和controller的简单例子+常用注解含义

备份笔记。所有代码都是2019年测试通过的,如有问题请自行搜索解决! 上一篇:springboot-基础-eclipse配置helloword示例 目录 添加model和controller的例子注解开发使用RestController 大坑 Model ModelMap和ModelAndView的区别 添加model和c…

ubuntu常见配置

ubuntu各个版本的安装过程大差小不差,可以参考,ubuntu20.04 其它版本换一下镜像版本即可 安装之后需要配置基本的环境,我的话大概就以下内容,后续可能有所删改 sudo apt-get update sudo apt-get install gcc sudo apt-get inst…

流模型 Flow 超详解,基于 Flow 的生成式模型,从思路到基础到公式推导到模型理解与应用(Flow-based Generative Model)

参考文献: [1] Dinh L, Krueger D, Bengio Y. Nice: Non-linear independent components estimation[J]. arXiv preprint arXiv:1410.8516, 2014. [2] Dinh L, Sohl-Dickstein J, Bengio S. Density estimation using real nvp[J]. arXiv preprint arXiv:1605.08803…

测试开发(6)软件测试教程——自动化测试selenium(自动化测试介绍、如何实施、Selenium介绍 、Selenium相关的API)

接上次博客:测试开发(5)测试分类标准 :按测试对像划分、按是否查看代码划分、按开发阶段划分、按测试实施组织、按是否运行划分、按是否手工划分、按测试地域划分-CSDN博客 目录​​​​​​​ 什么是自动化测试 自动化测试介绍…

echarts图表用key强制刷新后空白

我的需求是echarts图表全屏后退出全屏在edge浏览器上没有什么问题但是在Chrome浏览器上会出现表格的线不能变回原来的比例的问题 我就想在退出全屏的时候强制刷新一下echarts图表外面的这个div useEffect(() > {if (col) {col.addEventListener("webkitfullscreenchan…

水电表远程集中抄表管理系统

水电表远程集中抄表管理系统是当前水电行业智能化发展的关键技术之一,为水电企业和用户提供了便捷、高效的抄表管理解决方案。该系统结合了远程监控、自动抄表、数据分析等多种功能,实现了水电抄表的智能化和精准化,为用户节省了大量人力物力…

golang学习5,glang的web的restful接口

1. //返回json r.GET("/getJson", controller.GetUserInfo) package mainimport (/*"net/http"*/"gin/src/main/controller""github.com/gin-gonic/gin" )func main() {r : gin.Default()r.GET("/get", func(ctx *…

第五节:Vben Admin权限-前端控制方式

系列文章目录 第一节:Vben Admin介绍和初次运行 第二节:Vben Admin 登录逻辑梳理和对接后端准备 第三节:Vben Admin登录对接后端login接口 第四节:Vben Admin登录对接后端getUserInfo接口 第五节:Vben Admin权限-前端控制方式 文章目录 系列文章目录前言一、Vben Admin权…

【极客技术】前 Twitter 工程师正在构建 Particle,一款由人工智能驱动的新闻阅读器

Particle.news是一个由前Twitter工程师领导的团队创建的新型企业,它在周末进入了私人测试阶段。这家初创公司提供一种个性化的“多视角”新闻阅读体验,不仅利用AI技术来总结新闻,还旨在公平地补偿作者和出版商——至少这是它们的宣称。 尽管…

数据结构(C语言)代码实现(十)——链队列循环队列

目录 参考资料 链队列的实现 LinkQueue.h LinkQueue.cpp 测试函数test.cpp 测试结果 循环队列的实现&#xff08;最小操作子集&#xff09; 完整代码 测试结果 参考资料 数据结构严蔚敏版 链队列的实现 LinkQueue.h #pragma once #include <cstdio> #incl…

到底用不用取地址符,用了有啥区别嘛

一段代码解释&#xff1a; #include <iostream> using namespace std; void swap1(int &a,int &b){int t;ta;ab;bt; } void swap2(int a,int b){int t;ta;ab;bt;cout<<"Im the answer of swap2 : "<<a<<" "<<b<…

【软考-高级软件工程师-信息系统项目管理师】 第三章 信息系统治理知识点 【五分钟看懂】

IT治理用于描述组织在信息化建设和数字化转型过程中是否采用有效的机制使得信息技术开发利用能够完成组织赋予它的使命。IT治理的核心是关注IT定位和信息化建设与数字化转型的责权利划分。 1、IT 治理体系的具体构成包括 IT 定位&#xff1a; IT 应用的期望行为与业务目标一致…

SAP FICO 更改已有业务数据的成本中心公司代码/业务范围

如果对已经发生业务数据的成本中心进行公司代码/业务范围修改&#xff0c;系统会报错&#xff0c;如下图所示 可参考SAP note 62716 - KS020 for change of company code, business area进行解决 解决办法&#xff1a; KS02修改成本中心描述 如下图所示会有一个新的期间&…

【深度学习】SDXL-Lightning 体验,gradio教程,SDXL-Lightning 论文

文章目录 资源SDXL-Lightning 论文 资源 SDXL-Lightning论文&#xff1a;https://arxiv.org/abs/2402.13929 gradio教程&#xff1a;https://blog.csdn.net/qq_21201267/article/details/131989242 SDXL-Lightning &#xff1a;https://huggingface.co/ByteDance/SDXL-Light…