C语言,一个字符和数字相加,一个奇怪的问题,求大神
答案:4 悬赏:60
解决时间 2021-02-07 21:42
- 提问者网友:我喜歡係
- 2021-02-07 17:30
C语言,一个字符和数字相加,一个奇怪的问题,求大神
最佳答案
- 二级知识专家网友:佛说妍妍很渣
- 2021-02-07 17:56
char类型表示一个有符号数的范围为:-128到127
z的ascii值为122
122+6=128
在内存中,128用一个字节表示就是
1000 0000
而这个数值,按整型输出时,表示的就是-128(补码)
解决你的问题,只需要将ch定义成无符号数就可以了
unsigned char ch ;
z的ascii值为122
122+6=128
在内存中,128用一个字节表示就是
1000 0000
而这个数值,按整型输出时,表示的就是-128(补码)
解决你的问题,只需要将ch定义成无符号数就可以了
unsigned char ch ;
全部回答
- 1楼网友:错过的是遗憾
- 2021-02-07 22:00
并不奇怪
char默认是有符号的
范围-128到127
当 加和大于127,就会从最小的-128那里继续开始了
- 2楼网友:努力只為明天
- 2021-02-07 20:40
char c;
scanf("%c",&c);
这就是一个字符啊
- 3楼网友:我颠覆世界
- 2021-02-07 19:08
#include
int main()
{
char ch;
int i;
printf("输入一个字符\n");
scanf("%c",&ch);
printf("输入一个数字\n");
scanf("%d",&i);
ch=ch+i;
if((unsigned char)ch>122&& (unsigned char)ch<(123+i))// 转化成无符号数再比较大小即可,否则 大于127的数会被当初负数处理。
ch=(ch-122)+96;
printf("%d\n%c\n",(unsigned char)ch,ch);
}
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯