记录一个C语言打印的误区:无符号的数通过%d打印出现符号位的现象

devtools/2025/3/1 14:16:19/

打印无符号数

使用 printf 打印无符号数时,应使用 %u 格式说明符。
如果错误地使用 %d(用于有符号整数),可能会导致误解,因为 %d 会将无符号数解释为有符号数。

在这里插入图片描述

符号位的误解(错误出现)

• 如果你使用有符号格式(如 %d)打印无符号数,且数值超过了有符号数的正范围,可能会被解释为负数。
• 例如,0xFFFF 对于 16 位有符号数是 -1,但对于无符号数仍然是 65535。

总结

• 无符号十六进制数转换为十进制数时,不会出现符号位问题。
• 确保使用正确的格式说明符(如 %u)来打印无符号数,以避免误解。

错误示范

错误代码如下:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
打印信息如下:
在这里插入图片描述
错误原因:使用有符号的%d打印无符号数
正确代码如下:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
打印信息如下:
在这里插入图片描述


http://www.ppmy.cn/devtools/163639.html

相关文章

Solar2月应急响应公益月赛

暗链排查-1 burp 抓包,找到 js,cyberchef 一把梭,纯黑盒 暗链排查-2 roottianshou-0e3d41087e0b47e587d7b244849b893b-7769f979cf-szxvl:~# gcore -o nginx_core 11 [Thread debugging using libthread_db enabled] Using host libthread_db…

package-info.java的作用

package-info.java 是 Java 中一个特殊的文件,主要用于为某个包提供元数据或文档信息。它并不是必需的,但在许多场景中非常有用。以下是它的主要作用: 1. 包级注释 package-info.java 通常用于为包提供文档注释,描述包的功能、用…

DeepSeek-R1-671B大模型满血版私有化部署高可用教程-SparkAi系统集成图文教程

DeepSeek官网服务器繁忙的主要原因是由于用户数量激增导致的服务器资源紧张。‌为了解决这一问题,DeepSeek团队已经暂停了API服务充值,以避免对用户造成业务影响。目前,存量充值金额仍可继续调用,但充值功能暂时不可用‌。 DeepSe…

java23种设计模式-享元模式

享元模式(Flyweight Pattern)学习笔记 1. 模式定义 结构型设计模式,通过共享技术实现大量细粒度对象的复用,有效减少内存占用并提高性能。核心思想:分离内部状态(可共享)与外部状态&#xff0…

Spring 集成 MyBatis 操作指南(详细实例)

📝 1. 前言 Spring 框架与 MyBatis 是 Java 开发中常见的组合,MyBatis 作为一款轻量级 ORM 框架,提供灵活的 SQL 语句管理,同时结合 Spring 的依赖注入和事务管理,能大大提高数据库访问的开发效率。本文将详细介绍 Spring 集成 MyBatis 的操作步骤,并提供完整实例。 �…

k8s出问题后 应该查看哪些内容

要确认 Kubernetes (k8s) 系统是否正常运行,需要检查集群的 核心组件、节点状态、Pod 运行情况 和 网络通信。以下是详细步骤和命令: 1. 检查集群节点状态 kubectl get nodes期望输出:所有节点状态为 Ready。异常情况: NotReady&…

使用Docker Compose部署 MySQL8

MySQL 8 是一个功能强大的关系型数据库管理系统,而 Docker 则是一个流行的容器化平台。结合使用它们可以极大地简化 MySQL 8 的部署过程,并且确保开发环境和生产环境的一致性。 安装 Docker 和 Docker Compose 首先,确保你的机器上已经安装了 Docker 和 Docker Compose。 …

Deepseek的缺陷

Deepseek什么都略懂,但答案很难让人满意。 内容蜻蜓点水,什么都有点,但浅薄的很。让玩家很无语。 一些软件类的答案貌似比较详细,但距离能用还差很远。 ----------------- 一些问题的答案如下: 《b4》是一款经典的生…