爱问知识人 爱问教育 医院库

有关TC2.0的一个整数越界问题

首页

有关TC2.0的一个整数越界问题

   int i,j;
   i = 32767;
   j = i + 1;
   printf ("%d,%d",i,j)
 输出的是 32767 , -32768
因为越界了‘
可是我将程序改成如下
    long i,j;
   i = 32767;
   j = i + 1;
   printf ("%d,%d",i,j)
 输出的怎么还是 32767 , -32768
 请高手指教

提交回答
好评回答
  • 2006-08-02 17:33:32
    “%d”输出带符号的十进制数;
    “u%”输出无符号的十进制数;
    所以说,不在于原变量的类型,关键在于输出格式转换字符。建议将原输出语句改为
    printf ("%u,%u",i,j)
    再运行一下,看看结果是否有变化?
    

    1***

    2006-08-02 17:33:32

类似问题

换一换

相关推荐

正在加载...
最新问答 推荐信息 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):