中易网

C语言,一个字符和数字相加,一个奇怪的问题,求大神

答案:4  悬赏:60  
解决时间 2021-02-07 21:42
C语言,一个字符和数字相加,一个奇怪的问题,求大神
最佳答案
char类型表示一个有符号数的范围为:-128到127
z的ascii值为122
122+6=128
在内存中,128用一个字节表示就是
1000 0000
而这个数值,按整型输出时,表示的就是-128(补码)

解决你的问题,只需要将ch定义成无符号数就可以了

unsigned char ch ;
全部回答
并不奇怪 char默认是有符号的 范围-128到127 当 加和大于127,就会从最小的-128那里继续开始了
char c; scanf("%c",&c); 这就是一个字符啊
#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); }
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
水电师傅们这个排水系统图该怎么看?请求指点
经典幼儿园地址在什么地方,想过去办事
热柘邮政支局我想知道这个在什么地方
美的FS40-13GR和美的FS40-13CR哪个好
NBA季后赛主场优势怎么算的?
今天去参加快乐没烦恼栏目试镜,试镜完后说还
联通怎样开通手机流量不限量
电脑老是断断续续的出现感叹号,然后说DNS未
帕丝飞尔地址在哪,我要去那里办事
CF小屏幕怎样变全屏
双腔起搏器一条电极脱落一条电极阻抗低 该怎
五华县潭下邮政支局地址在哪,我要去那里办事
悦动冷车的时候“吱吱”响,2-3秒就好了,热
平安保险和太平洋保险哪个理赔好
如何利用diskgenius硬盘检测工具解决U盘无法
推荐资讯
六三年的50元钱现在值多少钱
郑州飞机场附近哪里有汽车加气站?
灵宝市大王镇在哪里啊,我有事要去这个地方
静态网页怎样建立自动更新的索引页index.htm
vivox5文字咋复制文字分享微信朋友圈
欧陆战争4君临天下少易行在哪里
买来的康乃馨盆栽,花苞长出来了,但花苞直到
做影视或广告等文化产业工作去北京还是上海好
初游加拿大,主游班夫国家公园,酒店住卡尔加
防中暑的资料
函数f(x)=3x?13x+1的值域为______
全脑优势和思维有什么关联?
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?