如何比较签名和未签名(并避免问题)

2023-12-14

最近我听说 C 中的有符号/无符号比较可能很棘手,例如,有符号/无符号比较还有其他一些问题。

我的问题是 - 如果我们必须将有符号类型与无符号类型进行比较(例如,包括 =、>、存在哪些策略可以避免这种比较产生的问题?

或者我们应该确保我们总是只比较int with int and unsigned with unsigned?

附言。也很高兴知道when这样的比较有危险吗?


最好提前确保您的类型匹配。但如果你不能:

如果您知道int此时肯定不会持有负值,将其转换为unsigned.

如果您知道unsigned值将小于INT_MAX,将其投射到int.

如果这两个值都不成立,请将这两个值转换为足够大的类型,以容纳您需要能够处理的所有可能的值。另一种可能性(当没有足够大的类型时)是使用两次比较:首先比较int与 0,如果它是非负数,则将其转换为unsigned并与unsigned value.

如果你不投射任何东西,int将被投射到unsigned,但如果这是您想要做的,最好明确说明这一点。

比较int with unsigned将无法正常工作时int具有负值。这是因为它将被隐式转换为unsigned这将改变它的价值。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何比较签名和未签名(并避免问题) 的相关文章

  • C/C++ 程序是在 CPU 上运行还是在内核上运行?

    我已经编程很多年了 但有一件事我一直不明白 有两种类型的编程语言 编译型语言和解释型语言 编译型语言首先需要编译成解释型语言 然后才能执行 例如 C C 需要先编译为机器语言 然后才能执行 我的问题来了 谁真正运行已编译的 C C Wind
  • 是否返回 std::move (x)?

    Are std vector
  • 我可以将特定警告视为错误吗?

    以下是我有时在学生代码中看到的模式的简化版本 bool foobar int a int b if a lt b return true 当然 真正的代码要复杂得多 Visual Studio 报告警告 C4715 并非所有控制路径都会返回
  • 使用 CMake 对 SDL 的未定义引用

    我正在使用 SDL v1 2 15 7 和 CMake 3 2 1 开发一个项目 在 h 文件中我添加了 include
  • C++ Linux GCC 应用程序中的 GUID

    我有很多服务器运行这个 Linux 应用程序 我希望他们能够生成一个碰撞概率较低的 GUID 我确信我可以从 dev urandom 中提取 128 个字节 这可能没问题 但是有没有一种简单易用的方法来生成与 Win32 更等效的 GUID
  • 为什么 .Net 框架指南建议您不要使用 ref/out 参数?

    显然 他们很 混乱 这是认真的原因吗 你还能想到其他的吗 你见过有多少开发人员并不真正理解 ref out 吗 我在真正需要的地方使用它们 但在其他地方则不然 它们通常仅在您想有效返回两个或多个值时才有用 在这种情况下它至少值得thinki
  • Docker 不遵循构建目录中的符号链接

    我正在对一个应用程序进行 Docker 化 其中涉及通过 Clang 将二进制文件与其他 C 文件链接 我们维护二进制文件的符号链接版本 因为它们在整个代码库中使用 我的 Docker 构建目录包含整个代码库 包括源文件以及这些源文件的符号
  • C++ 虚拟关键字与重写函数

    我正在学习c 并且正在学习virtual关键字 我在互联网上搜索试图理解它但无济于事 我进入编辑器并做了以下实验 期望它打印两次基本消息 因为我的印象是需要 virtual 关键字来覆盖函数 然而 它打印出了两条不同的消息 有人可以向我解释
  • 使用 C# 和 .NET Core 在 AWS Cognito 用户池中进行用户管理

    如何使用 C 和 NET Core 3 x 管理 AWS Cognito 用户池中的用户 在文档中找不到有关它的任何内容 Attilio Gelosa 的原创文章 我写这篇文章是希望对其他人有帮助 我必须阅读一页又一页的文档 并从 AWS
  • DataContractJsonSerializer 包含元素类型子类型的通用列表

    我要使用DataContractJsonSerializer用于 JSON 序列化 反序列化 我在 JSON 数组中有两种对象类型 并希望将它们都反序列化为相应的对象类型 具有以下类定义 DataContract public class
  • 不可能的事情发生了!这是什么意思?

    我遇到了一个有趣的运行时错误 我认为这是某种内存泄漏 我写了以下程序 C Code include
  • 为什么 C++20 范围不只提供管道语法?

    我知道这个问题听起来很奇怪 所以这里有一些背景信息 最近 我很失望地了解到 C 20 范围内的映射缩减并不像人们所期望的那样工作 即 const double val data transform accumulate 不起作用 你必须这样
  • Xamarin.Android JmDNS 绑定问题

    我开始研究 Xamarin Android 的 JmDNS 绑定 我设法构建了绑定 但无法从代码中引用它 https github com ytn3rd monodroid bindings tree master JmDNS https
  • 更改成员资格、角色等的默认连接字符串

    默认情况下 我的网络应用程序似乎正在使用LocalSqlServer作为用于任何应用程序服务 例如成员资格 角色 身份验证 等 的连接字符串 有什么方法可以更改默认连接字符串应该是什么 默认值是 LocalSqlServer 似乎很随意 我
  • PARITY_NONE 是 C++ Windows 中的关键字吗?

    我正在使用 boost 编写一个串行库 并且我有一个枚举 enum parity t PARITY NONE PARITY ODD PARITY EVEN 我收到如下错误 错误 1 错误 C2059 语法错误 我无法弄清楚问题是什么 然后我
  • 来自资源中 ImageSource 的 System.Drawing.Image

    我的问题与这个非常相似 wpf图像资源以及运行时在wpf控件中更改图像 https stackoverflow com questions 940592 wpf image resources and changing image in w
  • 在标准 C 中将 int 转换为 string

    我是 C 新手 我正在寻找一个可以调用函数进行转换的示例int串起来 我发现itoa但这不是标准 C 的一部分 我还发现sprintf str d aInt 但问题是我不知道所需的 str 的大小 因此 我如何传递输出字符串的正确大小 有多
  • 使用 QTestLib 时抑制 qDebug

    我正在向 Qt 中的项目添加单元测试 并希望使用 QTestLib 我已经设置了测试并且它们运行良好 问题是在项目中我们重写了 qDebug 以输出到我们自己的日志文件 这在运行应用程序时效果很好 问题是当我测试类时 它有时会开始记录 然后
  • 如何正确地将十六进制转义添加到字符串文字中?

    当你有C语言的字符串时 你可以在里面直接添加十六进制代码 char str abcde a b c d e 0x00 char str2 abc x12 x34 a b c 0x12 0x34 0x00 这两个示例在内存中都有 6 个字节
  • 使texture2D在运行时/脚本Unity3D中可读[重复]

    这个问题在这里已经有答案了 我有一个插件 可以让我访问 Android 手机图库中的图片 这给了我一个Texture2D类型的纹理 然后我想使用 GetPixels 函数对其进行编辑 但默认情况下它未设置为可读 如何使纹理可读 以便我可以在

随机推荐

  • 关于数组中缺少元素的问题

    我在麻省理工大学的 算法介绍第二版 一书中遇到以下问题 问题如下 数组 A 1 n 包含 0 到 n 之间除 1 之外的所有整数 这很容易 使用辅助数组 B 0 来在 O n 时间内确定丢失的整数 记录 A 中出现了哪些数字 但是 在这个问
  • 如何使用 django 删除图像?

    我想知道如何在表单中添加删除按钮来删除图像 该项目是一个简单的 图片查看器 索引显示存储的所有图像 但我想添加一个 x 图标来删除该特定图像 这是我的代码 views py from django shortcuts import rend
  • jTDS 错误地报告结果集元数据中的数据类型信息(对于 DATE 列,报告 NVARCHAR)

    目前 针对 Microsoft SQL Server 2008 的 jTDS JDBC 驱动程序 1 2 5 似乎错误地将 DATE 列的数据类型报告为 NVARCHAR 对于早期版本的 jTDS 和 SQL Server 2005 200
  • pytorch 中的 reshape 和 view 有什么区别?

    在 numpy 中 我们使用ndarray reshape 用于重塑数组 我注意到在 pytorch 中 人们使用torch view 出于同样的目的 但同时 还有一个torch reshape 现存的 所以我想知道它们之间有什么区别以及何
  • 在 JavaScript 中返回 !1

    我刚刚在 JavaScript 中遇到了一个函数 它有return 1 这实际上意味着什么 你为什么要return 1 or return 0 这是我遇到的函数 function convertStringToBoolean a typeo
  • let 语句中的 case 语句需要什么缩进?

    在 haskell 中工作 发现奇怪的行为 将其精简为简单的框架 这有效 a Bool a case True of True gt True False gt False 但当我尝试时 b IO Bool b do let b case
  • 我备份了一个 git 项目,并得到“致命:不是 Git 存储库”

    我将 Linux 上的 git 文件夹备份到 FAT32 外部驱动器上 稍后将其复制回来 它说 fatal Not a git repository or any of the parent directories git 可能出了什么问题
  • 错误:变量可能尚未初始化

    收到错误 Pay java 81 错误 变量hourlyWage可能不是 已初始化JOptionPane showMessageDialog null hourlyWage 对于以下代码 双hourlyWage已声明 这些陈述位于主要论点内
  • 应用程序处于后台模式时的文本到语音功能?

    我正在研究一个TextToSpeech应用程序 我在一篇文章中写了一段UITextField 然后我按Speak按钮 声音根据写入的文本播放UITextField 但是 当应用程序处于后台模式时 音频将停止播放 如何在后台模式下继续播放声音
  • Angularjs如何上传多部分表单数据和文件?

    我是 angular js 的初学者 但我很好地掌握了基础知识 我想要做的是将文件和一些表单数据作为多部分表单数据上传 我读到这不是 Angular 的功能 但是第 3 方库可以完成此任务 我已经通过 git 克隆了 Angular fil
  • 在循环中为 Tkinter Entry 小部件创建 StringVar 变量

    我有一个小脚本 可以生成随机数量的条目小部件 每个都需要一个 StringVar 以便我可以将文本分配给小部件 由于我无法提前知道会有多少个 因此如何将它们创建为循环的一部分 from Tkinter import import rando
  • Pygame 应用程序中的 SVG 渲染。在 Pygame 2.0 之前,Pygame 不支持 SVG。那你是怎么加载的呢?

    In a Pygame应用程序中 我想渲染 SVG 中描述的无分辨率 GUI 小部件 我怎样才能实现这个目标 我喜欢OCEMP图形用户界面工具包 但它的渲染似乎依赖于位图 这是一个完整的例子 结合了其他人的提示 它应该从当前目录渲染一个名为
  • 如何将 TextView 文本颜色设置为特定主题颜色

    我尝试学习 Android 主题 但在设置主题时遇到了麻烦TextViewTextColor 为另一种颜色 然后是全局的
  • Delphi:Char 和 TCharArray“不兼容类型”数组

    我在下面的评论中遇到过几次 不兼容的类型 错误 并且一直对为什么 Delphi 2007 不直接支持此错误感到满意 program Project1 APPTYPE CONSOLE type TCharArray array of Char
  • 查找图像的方向

    我正在使用 OpenCv 进行模式匹配 我有一个模型 我将目标与函数 cvMatchShapes 进行比较 它有效 但我想知道目标的方向 我该怎么做 例如 边界旋转矩形是否适合轮廓方向相差 180 度的情况 解决问题的另一种方法是计算轮廓矩
  • 从另一个文件获取变量 - python

    我正在创建一个 Tkinter 程序 允许用户在一个漂亮的框中输入文本 而不是在 python shell 中 因为我想在多个程序中使用它 所以我将其制作成一个可以在其他文件中使用的函数 我可以让它在另一个文件中运行 但不能导入变量 这是我
  • PHP中相对路径还是绝对路径以及如何设置

    我正在开发一个网站 我正在尝试访问该网站的主目录 但我不知道如何进行设置 我想做的是包括 inc config php通过 inc config php而不必使用 inc config php有什么想法如何添加这个吗 一般来说 处理路径时需
  • OpenXML 从 Excel 创建数据表 - 货币单元格值不正确

    我正在尝试使用 OpenXML 从 Excel 电子表格创建数据表 使用 Cell CellValue innerXml 获取行的单元格值时 为用户输入的货币值返回的值 在电子表格上可见 与解释的值不同 电子表格单元格格式为文本 单元格值为
  • 在 iOS 10+ 中,有什么方法可以可靠地唤醒应用程序

    我已经这样做了三个多月了 我的头发都被拔掉了 所以请不要回复初学者的答案 我想知道 在 2017 年的 iOS 10 中 是否有任何方法可以将应用程序从终止状态唤醒 最好是通过蓝牙外围设备 但我会采取我能得到的 我认为终止的时间是用户在任务
  • 如何比较签名和未签名(并避免问题)

    最近我听说 C 中的有符号 无符号比较可能很棘手 例如 有符号 无符号比较还有其他一些问题 我的问题是 如果我们必须将有符号类型与无符号类型进行比较 例如 包括 gt 存在哪些策略可以避免这种比较产生的问题 或者我们应该确保我们总是只比较i