是否有符号到无符号的转换以及返回,定义了整数的行为?

2024-03-05

#include <cstdint>
#include <iostream>

int main() {
  uint32_t i = -64;
  int32_t j = i;

  std::cout << j;
  return 0;
}

我尝试过的大多数编译器都会创建输出的程序-64,但是这是定义的行为吗?

  • 是将有符号整数赋值给无符号整数uint32_t i = -64;定义的行为?
  • 是有符号整数赋值int32_t j = i;, when i equals 4294967232,定义的行为?

对于无符号整数越界转换,结果是定义的;对于有符号整数,它是实现定义的。

C++11(ISO/IEC 14882:2011) §4.7 积分转换 [conv.integral/2]

如果目标类型是无符号的,则结果值是与源整数一致的最小无符号整数(模 2^n,其中 n 是用于表示无符号类型的位数)。 [注意:在二进制补码表示中,这种转换是概念性的,位模式没有变化(如果没有截断)。 ——尾注]

如果目标类型是有符号的,并且可以用目标类型(和位字段宽度)表示,则该值不会改变;否则,该值是实现定义的。

对于 C++14,此文本保持不变。

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

是否有符号到无符号的转换以及返回,定义了整数的行为? 的相关文章

  • STL 迭代器:前缀增量更快? [复制]

    这个问题在这里已经有答案了 可能的重复 C 中的预增量比后增量快 正确吗 如果是 为什么呢 https stackoverflow com questions 2020184 preincrement faster than postinc
  • 如何在 C# 中打开 Internet Explorer 属性窗口

    我正在开发一个 Windows 应用程序 我必须向用户提供一种通过打开 IE 设置窗口来更改代理设置的方法 Google Chrome 使用相同的方法 当您尝试更改 Chrome 中的代理设置时 它将打开 Internet Explorer
  • 如何从本机 C(++) DLL 调用 .NET (C#) 代码?

    我有一个 C app exe 和一个 C my dll my dll NET 项目链接到本机 C DLL mynat dll 外部 C DLL 接口 并且从 C 调用 C DLL 可以正常工作 通过使用 DllImport mynat dl
  • C++ 多行字符串原始文字[重复]

    这个问题在这里已经有答案了 我们可以像这样定义一个多行字符串 const char text1 part 1 part 2 part 3 part 4 const char text2 part 1 part 2 part 3 part 4
  • 方程“a + bx = c + dy”的积分解

    在等式中a bx c dy 所有变量都是整数 a b c and d是已知的 我如何找到整体解决方案x and y 如果我的想法是正确的 将会有无限多个解 由最小公倍数分隔b and d 但我只需要一个解决方案 我可以计算其余的 这是一个例
  • 使用 C# 中的 CsvHelper 将不同文化的 csv 解析为十进制

    C 中 CsvHelper 解析小数的问题 我创建了一个从 byte 而不是文件获取 csv 文件的类 并且它工作正常 public static List
  • 为什么这个字符串用AesCryptoServiceProvider第二次解密时不相等?

    我在 C VS2012 NET 4 5 中的文本加密和解密方面遇到问题 具体来说 当我加密并随后解密字符串时 输出与输入不同 然而 奇怪的是 如果我复制加密的输出并将其硬编码为字符串文字 解密就会起作用 以下代码示例说明了该问题 我究竟做错
  • C# xml序列化必填字段

    我需要将一些字段标记为需要写入 XML 文件 但没有成功 我有一个包含约 30 个属性的配置类 这就是为什么我不能像这样封装所有属性 public string SomeProp get return someProp set if som
  • 为什么使用小于 32 位的整数?

    我总是喜欢使用最小尺寸的变量 这样效果就很好 但是如果我使用短字节整数而不是整数 并且内存是 32 位字可寻址 这真的会给我带来好处吗 编译器是否会做一些事情来增强内存使用 对于局部变量 它可能没有多大意义 但是在具有数千甚至数百万项的结构
  • 如何在 Linq to SQL 中使用distinct 和 group by

    我正在尝试将以下 sql 转换为 Linq 2 SQL select groupId count distinct userId from processroundissueinstance group by groupId 这是我的代码
  • C 函数 time() 如何处理秒的小数部分?

    The time 函数将返回自 1970 年以来的秒数 我想知道它如何对返回的秒数进行舍入 例如 对于100 4s 它会返回100还是101 有明确的定义吗 ISO C标准没有说太多 它只说time 回报 该实现对当前日历时间的最佳近似 结
  • 在 WPF 中使用 ReactiveUI 提供长时间运行命令反馈的正确方法

    我有一个 C WPF NET 4 5 应用程序 用户将用它来打开某些文件 然后 应用程序将经历很多动作 读取文件 通过许多插件和解析器传递它 这些文件可能相当大 gt 100MB 因此这可能需要一段时间 我想让用户了解 UI 中发生的情况
  • 相当于Linux中的导入库

    在 Windows C 中 当您想要链接 DLL 时 您必须提供导入库 但是在 GNU 构建系统中 当您想要链接 so 文件 相当于 dll 时 您就不需要链接 为什么是这样 是否有等效的 Windows 导入库 注意 我不会谈论在 Win
  • 石和磅的格式正确吗?

    我有一个图表 用于显示重量 以英石和磅 lbs 为单位 该图表由记录中的数据填充 对于权重 数据类型为 Double 记录数据是在运行时编辑的 我需要知道一种正确格式化输入数据的方法 为了更好地理解 首先看一下这些示例值 它们表示为石和磅
  • C++ 继承的内存布局

    如果我有两个类 一个类继承另一个类 并且子类仅包含函数 那么这两个类的内存布局是否相同 e g class Base int a b c class Derived public Base only functions 我读过编译器无法对数
  • C++ 中的 include 和 using 命名空间

    用于使用cout 我需要指定两者 include
  • 类型或命名空间“MyNamespace”不存在等

    我有通常的类型或命名空间名称不存在错误 除了我引用了程序集 using 语句没有显示为不正确 并且我引用的类是公共的 事实上 我在不同的解决方案中引用并使用相同的程序集来执行相同的操作 并且效果很好 顺便说一句 这是VS2010 有人有什么
  • Mono 应用程序在非阻塞套接字发送时冻结

    我在 debian 9 上的 mono 下运行一个服务器应用程序 大约有 1000 2000 个客户端连接 并且应用程序经常冻结 CPU 使用率达到 100 我执行 kill QUIT pid 来获取线程堆栈转储 但它总是卡在这个位置
  • 现代编译器是否优化乘以 1 和 -1

    如果我写 template
  • 如何确定 CultureInfo 实例是否支持拉丁字符

    是否可以确定是否CultureInfo http msdn microsoft com en us library system globalization cultureinfo aspx我正在使用的实例是否基于拉丁字符集 我相信你可以使

随机推荐

  • R 中的 gsub 和 regex 问题

    我在 R 中使用 gsub 将文本添加到字符串的中间 它工作得很好 但由于某种原因 当位置太长时 它会抛出错误 代码如下 gsub paste0 as integer loc 1 1 new cols sql Error in gsub p
  • C-如何使用PROGMEM存储和读取char数组

    我有三个字符数组 我不希望 Arduino 将它们存储在SRAM http en wikipedia org wiki Static random access memory 所以我想使用PROGMEM来存储和读入flash http en
  • 类似于 ftrace 打印 CPU 编号

    我想打印当前进程或函数正在执行的 CPU 编号 类似于 ftrace 如下所示 TASK PID CPU TIMESTAMP FUNCTION
  • 我无法获得可样式化的属性数组

    我使用 attrs 声明一个可样式化的视图 并以简单的方式创建了文件 myview attrs xml
  • 类库中 app.config 中的连接字符串

    我正在创建解决方案 里面有三个项目 WCF 服务库项目 数据访问项目 类库 用于托管 WCF 服务的网站 该服务的实现位于项目 1 上 但为了访问数据库 我使用了第二个项目 该项目使用类库项目实现数据访问 这个问题是为了获得数据访问 我需要
  • 将数字列表分为 2 个等和列表的算法

    有一个数字列表 该列表将被分为 2 个大小相等的列表 并且总和相差最小 金额必须打印出来 Example gt gt gt que 2 3 10 5 8 9 7 3 5 2 gt gt gt make teams que 27 27 对于某
  • Actionscript3 到 JavaScript 通信:最佳实践

    那么在更抽象的层面上上一个问题 https stackoverflow com questions 299729 javascript to flash communication 根据我的经验 有 3 种方法可以使用 AS3 从嵌入式 s
  • 通过 less 生成 CSS 组

    是否能够创建这样一个生成CSS组的mixin 我将在下面解释我的意思 fancymixin max prefix content what I don t know how to code fancymixin 10 x 它会生成类似以下内
  • MySQL:SELECT 语句区分大小写吗?

    是MySQLSELECT查询默认区分大小写还是不区分大小写 如果没有 我必须发送什么查询才能执行如下操作 SELECT FROM table WHERE Value iaresavage 事实上 真正的价值Value is IAreSava
  • 使用对象浏览器中未列出的对象属性

    我一直在深入研究 VBA 中对象属性和方法的底层结构 我刚刚读到每个对象的所有属性和方法都列在开发人员框中的 对象浏览器 中 之所以提示我查看此内容 是因为我使用了对象浏览器中未列出的方法 我用了 Sheets Front face Sha
  • clojure core.async 通道如何清理?

    我是第一次了解 Clojure core async 并且正在阅读 Rich Hickey 的精彩演示 http www infoq com presentations clojure core async http www infoq c
  • pyspark 是否会更改优化指令的顺序?

    假设我有以下管道 df orderBy foo limit 10 show 在这里我们可以看到orderBy指令首先出现 因此数据帧的所有行都应在指令之前排序limit指令被执行 我发现自己在想 Spark 是否在管道内进行一些 重组 以提
  • 从 ASP Classic 迁移到 .NET 并缓解痛苦

    我们正在 NET 3 5 中重新设计网站面向客户的部分 到目前为止一切进展顺利 我们使用相同的工作流程和存储过程 在大多数情况下 最大的变化是 UI ORM 从字典到 LINQ 当然还有语言 到目前为止 大多数页面都是微不足道的 但现在我们
  • AlertDialog 样式 - 如何更改标题、消息等的样式(颜色)

    我已经为这件事伤透了脑筋 我需要做的是 改变所有的风格AlertDialog在我的 Android 应用程序中 对话框背景需要是白色的 文本需要是黑色的 我尝试创建很多样式 主题 并从代码 清单等中应用 但就文本颜色而言没有成功AlertD
  • Python 中的 HMAC SHA1 摘要

    我正在使用移动API https dev moves app com获取一些健身数据 我不想定期查询 API 而是使用故事情节通知 https dev moves app com docs api notifications 它有效 我收到
  • 为什么 join 失败并出现“java.util.concurrent.TimeoutException: Futures timed out after [300秒]”?

    我正在使用 Spark 1 5 我有两个以下形式的数据框 scala gt libriFirstTable50Plus3DF res1 org apache spark sql DataFrame basket id string fami
  • 如何在 Google Cloud Run 上运行 WordPress?

    Google Cloud Run 是新的 可以在上面运行 WordPress docker 吗 也许使用 gce 作为 mysql mariadb 的数据库 找不到任何关于此的讨论 虽然我认为这是可能的 但是花时间来完成这个练习并不好 Cl
  • 获取最近发生的星期日

    我需要在日历视图中显示当前的一周 从周日开始 在 Javascript 中确定 上周日 最安全的方法是什么 我使用以下代码计算它 Date prototype addDays function n return new Date this
  • getDownTime() 和 getEventTime()

    getEventTime 和 getDownTime 有什么区别 在文档中http developer android com reference android view MotionEvent html http developer a
  • 是否有符号到无符号的转换以及返回,定义了整数的行为?

    include