c语言 - 为什么以下程序给出的输出"-128",尽管其值被指定为"128"?

  • 本文关键字:-128 输出 语言 程序 c char signed
  • 更新时间 :
  • 英文 :

#include <stdio.h>
#include <stdlib.h>
int main()
{
signed char chr=128;
printf("%dn",chr);

return 0;
}

你知道整数极限吗?char值占用1个字节。一个字节通常是8位。为了通过位数计算极限,计算为2^n-1,这意味着具有8位的整数在无符号时的范围为0到255。由于变量是有符号的,它会为符号分配一个位,这意味着它的范围从-128到127。由于您将其指定为128,它溢出,回滚到-128。如果程序不使用负数,则应使用signed char,否则可能需要使用2字节的short

相关内容

  • 没有找到相关文章

最新更新