c - unsigned int 变量如何存储负值?
问题描述
当我尝试下面的代码片段时,它打印 -1 作为输出。但是 unsigned int 是如何存储 -1 的呢?
代码:
unsigned int a = -1;
printf("a = %d \n",a)
输出:-1
这怎么可能?
注意:我在stackoverflow中看到了类似的问题。这是不同的。我的问题是为什么它打印 -1 作为输出,即使“a”是无符号的。
解决方案
说明%d
符告诉printf
“将此值解释为有符号整数”。即使a
值是0xFFFFFFFF
(4,294,967,296),当解释为有符号值时,它也会显示为 -1。
推荐阅读
- wordpress - WordPress 如何对数字和对象使用转义功能,例如 post_type
- javascript - 从 MutationObserver 的突变编辑 DOM 中的元素
- javascript - 我应该在哪里存储我的 facebook appid?它需要被保护吗?
- swift - 尝试从 Firebase 检索数据时未调用 tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) 函数
- ssis - ssis中序列容器的并行化
- php - Laravel 和 phpword 的可能性
- angular - 如何监视构造函数中调用的方法?
- java - 单击后更改 HTMLPanel 中超链接的颜色
- android - 点击“继续使用 facebook”后,我的应用程序崩溃/关闭
- python - 如何在 Numpy(或其他 Python 解决方案)中利用外积的对称性?