C语言 int和unsigned int逻辑比较

news2024/11/20 10:38:01

文章目录

  • 测试
    • 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);//false
	printf("%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://www.coloradmin.cn/o/1475417.html

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

相关文章

vue组件中data为什么必须是一个函数

查看本专栏目录 关于作者 还是大剑师兰特:曾是美国某知名大学计算机专业研究生,现为航空航海领域高级前端工程师;CSDN知名博主,GIS领域优质创作者,深耕openlayers、leaflet、mapbox、cesium,canvas&#x…

R语言——条形图数据可视化的多种方式

本文章将会介绍如何使用R语言中的ggplot2包使用条形图进行数据可视化。将会使用一个“生产企业原材料的订购与运输”的订单数据,该数据来自2021数学建模国赛C题。 某建筑和装饰板材的生产企业所用原材料主要是木质纤维和其他植物素纤维材料总体可分为 A B C 三种类…

LeetCode 刷题 [C++] 第240题.搜索二维矩阵 II

题目描述 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性: 每行的元素从左到右升序排列。 每列的元素从上到下升序排列。 题目分析 通过分析矩阵的特点发现,其左下角和右上角可以看作一个“二叉搜索树的根节…

ROS-Ubuntu 版本相关

ROS-Ubuntu 版本相关:安装指引 年代ROS1版本Ubuntu 版本2014Indigo14.042016Kinetic16.042018Melodic18.042020Noetic20.04 & 22.04 ROS2兼顾了工业使用上的问题。 年代ROS2版本Ubuntu 版本2022Humble20.04 & 22.042023Iron16.04 相关参考: […

MySQL进阶:大厂高频面试——各类SQL语句性能调优经验

👨‍🎓作者简介:一位大四、研0学生,正在努力准备大四暑假的实习 🌌上期文章:MySQL进阶:强推,冲大厂必精通!MySQL索引底层(BTree)、性能分析、使用…

【Java程序设计】【C00336】基于Springboot的防疫物资管理系统(有论文)

基于Springboot的防疫物资管理系统(有论文) 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springboot的防疫物资管理系统,本系统有管理员以及用户二种角色; 管理员:个人中心、管理员管理、用户管理…

AI领域的从业女性, 合成数据和减少AI的偏见等议题

关于企业AI领域创新举措的新闻层出不穷,澳鹏也不例外。AI领域的女性、数据管理和偏见减少的专家建议以及合成数据突破等内容成为今年第三季度各大媒体出版物的头版头条!请继续阅读,了解新闻媒体对澳鹏上一季度表现的评价。 ‘虚假’数据如何对…

laravel8配合jwt

composer 安装包 composer require tymon/jwt-authconfig/app.php 注册服务提供者 providers > [Tymon\JWTAuth\Providers\LaravelServiceProvider::class, ]aliases > [JWTAuth > Tymon\JWTAuth\Facades\JWTAuth::class,JWTFactory > Tymon\JWTAuth\Facades\JWT…

Web服务器群集:OpenEuler 部署 LAMP(LNMP) 基础服务

目录 一、实验 1.环境 2. 网络配置 3. MobaXterm远程连接 4. apache 2.4.58 源码编译安装 5. php 8.3.1源码编译安装 6.配置httpd 连接 php-fpm 6. nginx 1.24.0源码编译安装 7. mysql 8.0.36安装 二、问题 1.MobaXterm设置右键复制粘贴 2.OpenEuler如何查看CPU的核…

String LCM

题目链接:Problem - 1473B - Codeforces 解题思路: 先算出两个字符串的最小公倍数,再分别除以字符串长度,构造出两个新的字符串,就是最小公倍数除以老字符串长度个老字符串相加,打个比方,a字符…

STM32驱动SHT30温湿度传感器

这次分享stm32驱动sht30温湿度传感器的方法和代码,这款传感器是仪器仪表行业上常用的一款型号。 目录 1.配置IO 2.写上通用的IIC协议 3.主函数获取数据 1.配置IO 我用到的IO口是 PB15---SCL PB14---SDA IIC中SDA和SCL引脚是开漏电路形式,所以SDA…

小程序框架(概念、工作原理、发展及应用)

引言 移动应用的普及使得用户对于轻量级、即时可用的应用程序需求越来越迫切。在这个背景下,小程序应运而生,成为一种无需下载安装、即点即用的应用形式,为用户提供了更便捷的体验。小程序的快速发展离不开强大的开发支持,而小程…

Java+SpringBoot+Vue:瑜伽馆管理的黄金组合

✍✍计算机毕业编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java、…

中科数安 | 公司办公终端、电脑文件防泄密管理系统——自动智能透明加密保护核心文件数据\资料,防止外泄

中科数安提供的电脑文件防泄密管理系统是一种专门设计用于保护企业内部敏感文件不被非法复制、传播或泄露的安全软件。这种管理系统采用了自动智能透明加密技术,可以对核心文件数据和资料进行保护,防止外泄。 ——广东中科数安信息有限公司—— www.weae…

半导体行业案例:Jira与龙智插件助力某半导体企业实现精益项目管理

近日,龙智Atlassian技术团队收到了国内一家大型半导体企业的感谢信。龙智团队提供的半导体行业项目管理解决方案和服务受到了客户的好评: 在龙智团队的支持下,我们的业务取得了喜人的成果和进步。龙智公司的专业服务和产品,是我们…

【UE 材质】水晶材质

效果 步骤 1. 先在Quixel Bridge上下载冰纹理 2. 新建一个材质,这里命名为“M_Ice”并打开,添加如下纹理采样节点 继续添加如下节点 此时效果如下: 可以看到此时的材质颜色比较浅,如果希望颜色深一点可以继续添加如下节点 此时效…

三、西瓜书——神经网络

一、神经元模型 在M-P神经网络模型中,神经元接 收到来自n个其他神经元传递过来的输入信号,这些输入信号通过带权重的连接(connection)进行传递,神经元接收到的总输入值将与神经元的阈值进行比较,然后通过“激活函数”(activation …

大数据集群管理软件 CDH、Ambari、DataSophon 对比

文章目录 引言工具介绍CDHAmbariDataSophon 对比分析 引言 大数据集群管理方式分为手工方式和工具方式,手工方式一般指的是手动维护平台各个组件,工具方式是靠大数据集群管理软件对集群进行管理维护。本文针对于常见的方法和工具进行比较,帮助…

naive-ui-admin 表格去掉工具栏toolbar

使用naive-ui-admin的时候,有时候不需要显示工具栏,工具栏太占地方了。 1.在src/components/Table/src/props.ts 里面添加属性 showToolbar 默认显示,在不需要的地方传false。也可以默认不显示 ,这个根据需求来。 2.在src/compo…

逆向案例二:关键字密文解密,自定义的加密解密。基于企名片科技的爬取。

import requests import execjsfor i in range(4):i i1url https://vipapi.qimingpian.cn/Activity/channelInformationByChannelNamedata {channel_name: 24新声,page: f{i},num: 20,unionid: W9wLD4rHIZrB3GLTUncmHgbZcEepR78xJa5Zit6XTMtata86DehdxDt/fDbcHeeJWqqIs6k…