c++ - 为什么 Visual Studio 不将无符号值显示为 int?

标签 c++ c visual-studio-2012 int unsigned

我正在使用 VS 2012,并且正在阅读这本教授 C\C++ 基础知识的书。这本书很老了,它不是用VS教的,而是用Borland C++教的。有一节课讲授如何将无符号值转换为 int。在书中它说 int 数字的值从 -32768 到 32767,而 unsigned 的值从 0 到 65535。在书中它被赋予数字 42000 并显示为 unsigned 是 42000 而 int 是 -23536。在 VS 中,它显示 unsignedint 都是 42000。

#include <stdio.h>
void main(void)
{
    unsigned int value = 42000;

    printf("Show 42000 as unsigned %u\n", value);
    printf("Show 42000 as int %d\n", value);

}

输出:

Show 42000 as unsigned 42000
Show 42000 as int 42000

旁注:尝试了 %d%i;没有用。

最佳答案

您的旧书给出了 16 位 intunsigned 的范围。较新的编译器使用 ether 32 位或 64 位。

关于c++ - 为什么 Visual Studio 不将无符号值显示为 int?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34614357/

相关文章:

c++ - 当代码具有从 char 到 wchar_t 的显式转换或反之亦然时,要求 vc++ 编译器显示编译器警告

c++ - 为什么两个光标在嵌入式应用程序中同时运行和移动?

c - gcc -g 标志 : Moving the Source Code

c++ - 为什么在 Release模式下可以在调试器中监视部分变量?

c++ - 是否可以从 readelf 命令读取结果

c++ - 如何截断 XMM 寄存器中的浮点值

c - 我如何在 linux 中搜索常量定义(在 c 包含文件中)

c - C/C++ 中检查密码强度的算法

c++ - 奇怪的 Visual Studio 行为 : Very long execution time

通过使用结构不同的代码将管理器与C程序联系起来