我正在使用 VS 2012,并且正在阅读这本教授 C\C++ 基础知识的书。这本书很老了,它不是用VS教的,而是用Borland C++教的。有一节课讲授如何将无符号值转换为 int
。在书中它说 int
数字的值从 -32768 到 32767,而 unsigned 的值从 0 到 65535。在书中它被赋予数字 42000 并显示为 unsigned
是 42000 而 int
是 -23536。在 VS 中,它显示 unsigned
和 int
都是 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 位 int
和 unsigned
的范围。较新的编译器使用 ether 32 位或 64 位。
关于c++ - 为什么 Visual Studio 不将无符号值显示为 int?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34614357/