请问。。。输出为什么是负数?

小八哥 2003-09-22 08:07:39
#include <stdio.h>
void main()
{
char ch='\302';
printf("%4d",ch);
}
输出为-62,可'302'对应的ASCII值为194呀,为什么没能输出194呢
...全文
212 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
bing_huo 2003-09-23
  • 打赏
  • 举报
回复
被人说完了。。。郁闷
yiminggw 2003-09-23
  • 打赏
  • 举报
回复
up
ccwwbb 2003-09-23
  • 打赏
  • 举报
回复
同意
langzi8818 2003-09-22
  • 打赏
  • 举报
回复
理解!
danielhf 2003-09-22
  • 打赏
  • 举报
回复
你用unsigned char 就可以, 范围(0-255)
如果你用char 有效范围(0-127), 128-255输出为负数,该ASCII码为相应负数的补码
playboyxp 2003-09-22
  • 打赏
  • 举报
回复
同意
hcj2002 2003-09-22
  • 打赏
  • 举报
回复
楼上的说的正确
wowowowo 2003-09-22
  • 打赏
  • 举报
回复
194>128 194(2)=11000010 也就是-62的补码
#include <stdio.h>
void main()
{
unsigned char ch='\302';
printf("%4d",ch);
}
splover 2003-09-22
  • 打赏
  • 举报
回复
正确!
fireseed 2003-09-22
  • 打赏
  • 举报
回复
the range of signed char is -127 to 128. in binary, the first bit is a sign bit, when value bigger than 128, the first sign bit will be 1. so in char type, 194 will looks like -62.

to resolve you problem, try to use unsigned char which range is 0 to 256

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧