有人能为我解释一下,为什么以下代码输出-50,尽管它被转换为无符号整数?
int main()
{
signed char byte = -50;
unsigned int n;
n = (unsigned int) byte;
printf("n: %d", n);
}
输出:-50
有人能为我解释一下,为什么以下代码输出-50,尽管它被转换为无符号整数?
int main()
{
signed char byte = -50;
unsigned int n;
n = (unsigned int) byte;
printf("n: %d", n);
}
输出:-50
printf()
中的%d
是用于int
类型的,请改为:printf("n: %u", n);
根据您的声明:
printf("n: %d", n);
std::cout<<n<<std::endl;