c中int和short的行为

2023-12-10

我想知道以下代码输出的原因是什么:

unsigned short a=10,aa=-1;
if(a>-1)
  printf("surprise");
else 
  printf(" No surprise");

这给出了输出“惊喜”

 unsigned int a=10,aa=-1;
    if(a>-1)
      printf("surprise");
    else 
      printf("No surprise");

这给出了输出“No Surprise”

and

unsigned short a=10,aa=-1;
if(a>aa)
   printf("surprise");
else 
  printf("No surprise");

这给出了输出“No Surprise”


请参阅此堆栈交换问题:

在存在 unsigned int 和signed int 的 C 表达式中,哪种类型将提升为哪种类型?

在AProgrammer的回复中,列出了完整的规则。 在第一种情况下,适用第四条规则(-1是有符号整数,它可以表示无符号短整型的所有值,因此无符号短整型被提升为有符号整型)。 在第二种情况下,适用第三条规则(有符号整数不能代表无符号整数的所有值,因此将其更改为无符号整数)。 在第三种情况下,-1 被转换为无符号短整型,然后应用第一个规则。

一般来说,我喜欢在进行任何比较之前将所有变量转换为相同的有符号类型(足够大以容纳我期望的范围),以避免混淆。

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

c中int和short的行为 的相关文章

  • 每个托管线程是否都有自己对应的本机线程?

    我想知道是否在 Net 中创建托管线程 通过调用Thread Start 导致在后台创建一个本机线程 那么托管线程是否有对应的本机线程呢 如果是 当托管线程等待或睡眠时 是否意味着相应的本机线程也在等待或睡眠 是的 NET 线程映射到所有当
  • 未提供参数时如何指定 C# System.Commandline 行为?

    在我的控制台应用程序中 当未提供控制台参数时 将执行我指定列表 在本例中为参数 3 的任何处理程序 调用该处理程序时 布尔参数设置为 false 但对我来说 根本不调用它更有意义 如何防止这种情况发生并显示帮助文本 using System
  • 确保 StreamReader 不会挂起等待数据

    下面的代码读取从 tcp 客户端流读取的所有内容 并且在下一次迭代中它将仅位于 Read 上 我假设正在等待数据 我如何确保它不会在没有任何内容可供读取时返回 我是否必须设置低超时 并在失败时响应异常 或者有更好的办法吗 TcpClient
  • 在 LINQ 中按 Id 连接多表和分组

    我想按categoryId显示列表产品的名称组 这是我的代码 我想要我的视图显示结果 Desktop PC HP Red PC Dell Yellow PC Asus Red SmartPhone Lumia 720 Blue 我的组模型
  • 如何创建包含 IPv4 地址的文本框? [复制]

    这个问题在这里已经有答案了 如何制作一个这样的文本框 我想所有的用户都见过这个并且知道它的功能 您可以使用带有 Mask 的 MaskedTestBox000 000 000 000 欲了解更多信息 请参阅文档 http msdn micr
  • 如何区分用户点击链接和页面自动重定向?

    拥有 C WebBrowser control http msdn microsoft com en us library system windows forms webbrowser aspx在我的 WinForms 应用程序中 并意识
  • 回发后刷新时提示确认表单重新提交。我做错了什么?

    我有一个以空白 默认状态启动的仪表板 我让用户能够将保存的状态加载到仪表板中 当他们单击 应用 按钮时 我运行以下代码 function CloseAndSave var radUpload find radUpload1ID var in
  • 如何使用 LINQ2SQL 连接两个不同上下文的表?

    我的应用程序中有 2 个数据上下文 不同的数据库 并且需要能够通过上下文 B 中的表的右连接来查询上下文 A 中的表 我该如何在 LINQ2SQL 中执行此操作 Why 我们正在使用 SaaS 产品来跟踪我们的时间 项目等 并希望向该产品发
  • 将 Word 文档另存为图像

    我正在使用下面的代码将 Word 文档转换为图像文件 但是图片显得太大 内容不适合 有没有办法渲染图片或将图片保存到合适的尺寸 private void btnConvert Click object sender EventArgs e
  • 为什么调用非 const 成员函数而不是 const 成员函数?

    为了我的目的 我尝试包装一些类似于 Qt 共享数据指针的东西 经过测试 我发现当应该调用 const 函数时 会选择它的非 const 版本 我正在使用 C 0x 选项进行编译 这是一个最小的代码 struct Data int x con
  • 如何在 32 位或 64 位配置中以编程方式运行任何 CPU .NET 可执行文件?

    我有一个可在 32 位和 64 位处理器上运行的 C 应用程序 我试图枚举给定系统上所有进程的模块 当尝试从 64 位应用程序枚举 32 位进程模块时 这会出现问题 Windows 或 NET 禁止它 我认为如果我可以从应用程序内部重新启动
  • 如何在 Xaml 文本中添加电子邮件链接?

    我在 Windows Phone 8 应用程序中有一些大文本 我希望其中有电子邮件链接 例如 mailto 功能 这是代码的一部分
  • C#:帮助理解 UML 类图中的 <>

    我目前正在做一个项目 我们必须从 UML 图编写代码 我了解 UML 类图的剖析 但我无法理解什么 lt
  • 使用管道时,如果子进程数量大于处理器数量,进程是否会被阻塞?

    当子进程数量很大时 我的程序停止运行 我不知道问题是什么 但我猜子进程在运行时以某种方式被阻止 下面是该程序的主要工作流程 void function int process num int i initial variables for
  • 使用 %d 打印 unsigned long long

    为什么我打印以下内容时得到 1 unsigned long long int largestIntegerInC 18446744073709551615LL printf largestIntegerInC d n largestInte
  • 按 Esc 按键关闭 Ajax Modal 弹出窗口

    我已经使用 Ajax 显示了一个面板弹出窗口 我要做的是当用户按 Esc 键时关闭该窗口 这可能吗 如果有人知道这一点或以前做过这一点 请帮助我 Thanks 通过以下链接 您可以通过按退出按钮轻松关闭窗口 http www codepro
  • 使用 .NET Process.Start 运行时挂起进程 - 出了什么问题?

    我在 svn exe 周围编写了一个快速而肮脏的包装器来检索一些内容并对其执行某些操作 但对于某些输入 它偶尔会重复挂起并且无法完成 例如 一个调用是 svn list svn list http myserver 84 svn Docum
  • 如何从 ODBC 连接获取可用表的列表?

    在 Excel 中 我可以转到 数据 gt 导入外部数据 gt 导入数据 然后选择要使用的数据源 然后在提供登录信息后 它会给我一个表格列表 我想知道如何使用 C 以编程方式获取该列表 您正在查询什么类型的数据源 SQL 服务器 使用权 看
  • 从列表中选择项目以求和

    我有一个包含数值的项目列表 我需要使用这些项目求和 我需要你的帮助来构建这样的算法 下面是一个用 C 编写的示例 描述了我的问题 int sum 21 List
  • 如何将 PostgreSql 与 EntityFramework 6.0.2 集成? [复制]

    这个问题在这里已经有答案了 我收到以下错误 实体框架提供程序类型的 实例 成员 Npgsql NpgsqlServices Npgsql 版本 2 0 14 2 文化 中性 PublicKeyToken 5d8b90d52f46fda7 没

随机推荐

  • Android:使用 RandomAccessFile 从内部存储访问文件

    我正在创建一个需要从文件读取数据的应用程序 我最初是使用 a 来从资产文件夹中读取它的BufferedReader and an InputStreamReader但我遇到了内存问题 请参阅Android 文件读取 内存不足问题 一项建议是
  • 使用 Boost PTree 解析 XML(不带标签)

    我想知道 Boost Ptree 是否允许在不知道属性标签的情况下解析 xml 文件 我有一个 XML 文件 它将定期更新新标签 新数据 甚至删除某些标签 这些定期更改促使我考虑在不硬编码属性名称的情况下解析文件 有什么方法可以读取 XML
  • 将 nvarchar 值“Internet Explorer 3 原始”转换为数据类型 int 时转换失败

    在 SQL Server 2008 TSQL 中 我创建了一个如下的存储过程 CREATE PROCEDURE SP 1 10 2 AS declare mostValuableBook nvarchar 255 SELECT mostVa
  • 无法使用 Selenium WebDriver 和 Java 打开 IE11 驱动程序实例

    System setProperty webdriver ie driver C Users IEDriverServer Win32 2 45 0 IEDriverServer exe WebDriver driver new Inter
  • 如何创建和访问共享应用程序组文档目录?

    我正在使用自定义键盘扩展 然后从服务器下载键盘主题并保存到应用程序文档目录 但应用程序文档目录无法在自定义键盘扩展中访问 因此需要共享应用程序组目录 我该怎么办请帮助我 现在我正在尝试这个 但它不起作用 let fileManager Fi
  • 在 Worker 的帮助下从 Spark 读取巨大的 MongoDB 集合

    我想从 Spark 读取一个巨大的 MongoDB 集合 创建一个持久的 RDD 并对其进行进一步的数据分析 有什么办法可以更快地从 MongoDB 读取数据 尝试过MongoDB Java Casbah的方法 我可以使用worker sl
  • CakePHP 条件查询,控制器为“hasAndBelongsToMany”

    我为这个可怕的标题道歉 我不知道如何解释我的问题 在我的数据库中 我有以下表格 articles tags and articles tags 一篇文章可以有多个标签 目前 我可以获取所有带有所有标签的文章 但我希望能够根据其标签查找文章
  • SVN 到 Git 迁移后如何列出和获取远程分支? [复制]

    这个问题在这里已经有答案了 我将 SVN 存储库迁移到 Git 并将其推送到中央存储库 我们有相当数量的标签和分支 但不知何故 我们无法从 Git 客户端列出和获取它们 这很奇怪 因为标签和分支似乎在服务器上可用 在一个人的帮助下乔恩 马多
  • 如何在 sails 控制器中获取当前套接字对象或 id?

    我想访问当前连接的套接字 IDsails js v0 12 控制器功能 sails sockets getId req socket 显示未定义 因为这不是套接字请求 我的目标是在用户成功登录后在数据库中设置用户的在线状态 login fu
  • 已弃用的“EAGLContext”的解决方案是什么?

    我想为我的应用程序使用本机过滤器 该功能可以工作 但我想避免从文档中删除的方法 我搜索整个互联网并没有解决方案 我搜索整个互联网 但没有找到任何解决我的问题的方法 public func applyFilterTo image UIImag
  • 根据需求添加带有可变参数的.Net Core策略

    我正在尝试实施一项非常细粒度的政策 这个想法就像图中一样 每个实体始终具有一对多与右侧实体的关系 一机构可以有很多Courses each Course可以有很多Subjects each Subject可以有很多Syllabus etc
  • 如何将获取请求参数传递到我的 Velocity 模板以发送邮件

    我有一个 JSP 在该 JSP 中我有一个看起来像这样的链接 现在 当用户单击该链接时 它会转到我的velocityview servlet 现在我的问题是如何提取velocityview servlet 中的这些参数并将其放入上下文中 以
  • 字符文字错误中字符过多

    我正在创建一个时尚的文本应用程序 但在某些地方我收到错误 字符文字中的字符太多 我只写了一个字母 但当我粘贴时 它会转换成许多字母 如下所示 uD83C uDD89 原始字母是 请告诉我如何以正确的方式写这个 for int charOne
  • 第一句话正则表达式

    我正在使用正则表达式 与 php perl 兼容 来从某些文本中获取第一句话 我意识到 如果涵盖所有案例 这可能会变得巨大 但只是在目前 足够好 的事情之后 有人为此准备了现成的东西吗 最终 您需要的是自然语言解析 这是极其困难的 并且单独
  • fillStyle 不是函数

    我收到一个不寻常的错误 ctx wrap fillStyle 不是函数 在这一行 ctx wrap fillStyle b8b8b8 in here this paint function self path ctx wrap if isO
  • ?打印心形符号时

    抱歉问了一个愚蠢的问题 我们正在尝试将心形符号从数据库打印到 Java XML 文件 但同样的内容被打印为 不知道我在哪里失踪了 已经尝试过 char unicode 作为实践 我尝试在 main 方法中使用它 请找到示例 java 类 p
  • ListView QML 的 roleName 中的 QSqlQueryModel 引用错误

    我想从我的 SQlite 数据库中获取模型 当我在 QSqlQueryModel 中设置查询时 我可以获得行数 列数等 但是每列内的数据我有一个 ReferenceError 试图获取柱子 cpp代码 data base users QSq
  • AVPlayer 在 iPhone 上不会在结束中断时恢复播放,但在 iPad 上会恢复播放

    我正在为 iPhone 和 iPad 编写一个广播应用程序 在处理中断的暂停和播放音频时遇到一些奇怪的行为 我正在使用 AVAudioSession 委托方法beginInterruption and endInterruption分别到p
  • ID3 Java 枚举树

    我正在尝试制作一个非二元学习树 它是 ID3 算法的简化版本 为此 我尝试使用枚举 因为有几个参考文献教授枚举层次结构 但我在将枚举转移到创建树所需的函数时遇到了麻烦 我已经尽我所能地设置了树所需的一切 但我在树的初始构建方面遇到了麻烦 首
  • c中int和short的行为

    我想知道以下代码输出的原因是什么 unsigned short a 10 aa 1 if a gt 1 printf surprise else printf No surprise 这给出了输出 惊喜 unsigned int a 10