Printf 函数格式化程序

2024-02-24

有以下简单的C++代码:

#include <stdio.h>

int main() {
    char c1 = 130;
    unsigned char c2 = 130;

    printf("1: %+u\n", c1);
    printf("2: %+u\n", c2);
    printf("3: %+d\n", c1);
    printf("4: %+d\n", c2);
    ...
    return 0;
}

输出是这样的:

1: 4294967170
2: 130
3: -126
4: +130

有人可以解释一下第 1 行和第 3 行的结果吗?

我正在使用Linuxgcc具有所有默认设置的编译器。


(这个答案假设,在你的机器上,char范围从 -128 到 127,即unsigned char范围从 0 到 255,并且unsigned int范围从 0 到 4294967295,恰好是这种情况。)

char c1 = 130;

这里,130 超出了由 表示的数字范围char。的价值c1是实现定义的。在你的情况下,数字恰好“环绕”,初始化c1 to static_cast<char>(-126).

In

printf("1: %+u\n", c1);

c1被提升为int, 导致-126。然后,它被解释为%u说明符为unsigned int。这是未定义的行为。这次结果数字恰好是由下式表示的唯一数字unsigned int这相当于 -126 模 4294967296,即 4294967170。

In

printf("3: %+d\n", c1);

The int value -126被解释为%d说明符为int直接,并按预期输出-126(?)。

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

Printf 函数格式化程序 的相关文章

  • 使用 std::packaged_task/std::exception_ptr 时,线程清理程序报告数据争用

    我遇到了线程清理程序 TSan 的一些问题 抱怨某些生产代码中的数据争用 其中 std packaged task 通过将它们包装在 std function 中而移交给调度程序线程 对于这个问题 我简化了它在生产中的作用 同时触发 TSa
  • 注销租约抛出 InvalidOperationException

    我有一个使用插件的应用程序 我在另一个应用程序域中加载插件 我使用 RemoteHandle 类http www pocketsilicon com post Things That Make My Life Hell Part 1 App
  • 如何在c++中读取pcap文件来获取数据包信息?

    我想用 C 编写一个程序来读取 pcap 文件并获取数据包的信息 例如 len sourc ip flags 等 现在我找到了如下代码 我认为它会帮助我获取信息 但是我有一些疑问 首先我想知道应该将哪个库添加到我的程序中 然后什么是 pca
  • 如何让 Swagger 插件在自托管服务堆栈中工作

    我已经用 github 上提供的示例重新提出了这个问题 并为任何想要自己运行代码的人提供了一个下拉框下载链接 Swagger 无法在自托管 ServiceStack 服务上工作 https stackoverflow com questio
  • 计算 Richtextbox 中所有单词的最有效方法是什么?

    我正在编写一个文本编辑器 需要提供实时字数统计 现在我正在使用这个扩展方法 public static int WordCount this string s s s TrimEnd if String IsNullOrEmpty s re
  • 提交后禁用按钮

    当用户提交付款表单并且发布表单的代码导致 Firefox 中出现重复发布时 我试图禁用按钮 去掉代码就不会出现这个问题 在firefox以外的任何浏览器中也不会出现这个问题 知道如何防止双重帖子吗 System Text StringBui
  • 在 DataView 的 RowFilter 中选择 DISTINCT

    我试图根据与另一个表的关系缩小 DataView 中的行范围 我使用的 RowFilter 如下 dv new DataView myDS myTable id IN SELECT DISTINCT parentID FROM myOthe
  • 在 LINQ 中按 Id 连接多表和分组

    我想按categoryId显示列表产品的名称组 这是我的代码 我想要我的视图显示结果 Desktop PC HP Red PC Dell Yellow PC Asus Red SmartPhone Lumia 720 Blue 我的组模型
  • 错误:表达式不产生值

    我尝试将以下 C 代码转换为 VB NET 但在编译代码时出现 表达式不产生值 错误 C Code return Fluently Configure Mappings m gt m FluentMappings AddFromAssemb
  • 在 C 中匹配二进制模式

    我目前正在开发一个 C 程序 需要解析一些定制的数据结构 幸运的是我知道它们是如何构造的 但是我不确定如何在 C 中实现我的解析器 每个结构的长度都是 32 位 并且每个结构都可以通过其二进制签名来识别 举个例子 有两个我感兴趣的特定结构
  • 使用 Newtonsoft 和 C# 反序列化嵌套 JSON

    我正在尝试解析来自 Rest API 的 Json 响应 我可以获得很好的响应并创建了一些类模型 我正在使用 Newtonsoft 的 Json Net 我的响应中不断收到空值 并且不确定我的模型设置是否正确或缺少某些内容 例如 我想要获取
  • 在 Visual Studio 2010 中从 Fortran 调用 C++ 函数

    我想从 Fortran 调用 C 函数 为此 我在 Visual Studio 2010 中创建了一个 FORTRAN 项目 之后 我将一个 Cpp 项目添加到该 FORTRAN 项目中 当我要构建程序时出现以下错误 Error 1 unr
  • 具有交替类型的可变参数模板参数包

    我想知道是否可以使用参数包捕获交替参数模式 例如 template
  • 我可以使用 moq Mock 来模拟类而不是接口吗?

    正在经历https github com Moq moq4 wiki Quickstart https github com Moq moq4 wiki Quickstart 我看到它 Mock 一个接口 我的遗留代码中有一个没有接口的类
  • 如何在 32 位或 64 位配置中以编程方式运行任何 CPU .NET 可执行文件?

    我有一个可在 32 位和 64 位处理器上运行的 C 应用程序 我试图枚举给定系统上所有进程的模块 当尝试从 64 位应用程序枚举 32 位进程模块时 这会出现问题 Windows 或 NET 禁止它 我认为如果我可以从应用程序内部重新启动
  • 为什么 std::strstream 被弃用?

    我最近发现std strstream已被弃用 取而代之的是std stringstream 我已经有一段时间没有使用它了 但它做了我当时需要做的事情 所以很惊讶听到它的弃用 我的问题是为什么做出这个决定 有什么好处std stringstr
  • 等待进程释放文件

    我如何等待文件空闲以便ss Save 可以用新的覆盖它吗 如果我紧密地运行两次 左右 我会得到一个generic GDI error
  • 使用管道时,如果子进程数量大于处理器数量,进程是否会被阻塞?

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

  • 无法接收 UDP Windows RT

    我正在为 Windows 8 RT 编写一个 Windows Store Metro Modern RT 应用程序 需要在端口 49030 上接收 UDP 数据包 但我似乎无法接收任何数据包 我已按照使用教程进行操作DatagramSock

随机推荐

  • Spark Apache 中的 Worker 无法连接到 master

    我正在使用独立集群管理器部署 Spark Apache 应用程序 我的架构使用 2 台 Windows 机器 一组作为主机 另一组作为从机 工作程序 Master on which I run bin gt spark class org
  • Java 中 DirectX 程序的全屏捕获(Javacv?)

    对于Windows 我知道可以捕获在 C 语言下运行的 DirectX 程序的屏幕 但是您知道 Java 的一些示例代码吗 我实际上面临着同样的问题使用java在全屏应用程序中截取屏幕截图 https stackoverflow com q
  • 突出显示工作表中的第二个实例重复项

    尝试在谷歌表格上标记重复项 但我看到当我使用时 第一个实例被突出显示 COUNTIF A1 A100 A1 gt 1 我尝试同时使用 IF 和 COUNTIF 以便突出显示第二个实例 IF COUNTIF A1 A97 A1 gt 1 Du
  • nginx keepalive 和 dns 解析器

    我在 AWS 中有一个 nginx 实例 它具有上游应用程序层 对nginx有两个要求 活着 使用解析器动态解析上游 我能够使它们中的任何一个工作 这是使 keepalive 工作的配置 upstream backend server ap
  • localStorage 无法在 google chrome 上运行

    我正在使用浏览器localStorage存储一个值 但是在使用谷歌浏览器时 当我们使用以下命令刷新页面时window location reload localStorage value被冲了 例如 localStorage value1
  • MongoDB 副本集成员状态为“OTHER”

    三个成员 主要和次要 第三个成员是 其他 我找不到有关该状态的任何信息 不知道该怎么做 我已经重新启动了实例 但它总是出现相同的情况 找不到有关该状态的文档 我是复制集的新手 任何帮助将不胜感激 配置设置不正确 您可以使用以下命令来初始化
  • 在 Python 中压缩并使用解压缩 C# 解压缩的最简单方法(反之亦然)

    我有一个带有基于 Mono 的 C 客户端和 Python 服务器的程序 它们通过 TCP IP 套接字进行通信 这些消息主要使用二进制格式 但每条消息的最大部分通常是嵌入的 UTF 8 字符串 英文 每条消息通常都很短 小于 100 字节
  • 将数据框(或其他 R 对象)连接到只读 Postgresql 数据库中的表?

    我对 Postgres 数据库具有只读访问权限 我无法写入数据库 问 有没有办法构建和运行 SQL 查询 将数据框 或其他 R 对象 连接到只读 Postgres 数据库中的表 这是为了从 WRDS 访问数据 https wrds www
  • UIGestureRecognizer oneFingerForcePress:在 iOS 11 上崩溃

    我们刚刚收到有关 iPhone 设备 iOS 11 的一些奇怪的崩溃反馈 这里有一个信息 UIKit UIKeyBoardBasedNonEditableTextSelectionGestureCluster oneFingerForceP
  • 在Angular2中动态加载HTML模板

    我使用创建了一个项目angular cli其中包含应用组件如下 import Component from angular core Component selector app root templateUrl app component
  • MSVC10 Visual Studio 2010 是否支持基于 C++ 范围的循环

    MSVC10 是否支持 C 0x 草案标准的基于范围的循环 http en wikipedia org wiki C 2B 2B0x Range based for loop http en wikipedia org wiki C 2B
  • Jenkins Email-ext 预发送脚本

    我想在 Email ext Jenkins 插件的预发送脚本中编辑电子邮件正文 我应该使用什么语言来编写代码 Bash 脚本还是其他 您可以添加一些代码吗 谢谢 您必须使用的语言是 Groovy 您可以在 Jenkins gt 管理 gt
  • 使用 typeScript 滚动到 webView 上的 x,y 坐标

    我正在我的应用程序中制作自定义地图 这本质上是一个大地图图像 我根据 GPS 位置在大地图图像上移动一个小头像图像 我允许用户滚动地图以查看屏幕外的地方 我现在想添加一个按钮 使用户回到他们的位置中心 但它不起作用 我尝试使用 window
  • 如何获取带有分隔符的字符串的前五个字符

    由此形成一整串 1 2 3 4 5 2 2 2 2 2 3 3 3 3 3 4 4 4 4 4 5 5 5 5 5 我怎样才能实现像这样放入数组 我想将它们按行放入数组中 正如您所提到的 您可以将结果作为字符串 并具有预期结果row str
  • 无法在 Databricks 上运行 Pandas 分析

    我正在尝试在 Databricks 环境中的示例数据帧上运行 Pandas 分析 收到与 marplotlib 相关的错误 不确定此问题是否与 Matplotlib 或 pandas profiling 相关 任何帮助将不胜感激 Datab
  • 初始化 MIDIMetaEvent 结构

    我正在努力使用 swift 初始化 MusicPlayer h 中找到的 MIDIMetaEvent 结构 头文件定义结构如下 struct MIDIMetaEvent var metaEventType UInt8 var unused1
  • 将 Gollum wiki 部署到 Heroku

    Gollum 是 一个简单的 由 Git 驱动的 wiki 具有出色的 API 和本地前端 它托管在 GitHub 上 http github com github gollum http github com github gollum
  • 移动浏览器中 Div 绝对定位的问题

    我在以下网站上绝对定位名为 id verticalGenesis 的 div 时遇到很多问题 http genesispetaluma com index html http genesispetaluma com index html在移
  • 清理项目、重建项目、在 Android Studio 中运行项目

    有谁知道或知道 android studio 中这三个功能如何工作的详细答案 我认为 Eclipse 可能还有 IntelliJ 也具有相同或相似的功能 我已经看到并被告知答案 这些答案给出了它们如何工作的简要概述 据我了解 重建还将清理项
  • Printf 函数格式化程序

    有以下简单的C 代码 include