打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
C语言中有关有符号字符型(char)的问题

C语言中有关有符号字符型(char)的问题

10
[ 标签:c语言,符号字符型,char ]
有符号字符型(char)的数值范围是-128~127,可是字符的ASCⅡ码是没有负数的,那么不就是说还有128个字符不能表示,而且我们平常主要用char,几乎不用unsigned char,求前辈指点.
C u 回答:5 人气:13 解决时间:2011-03-05 15:12

满意答案

好评率:0%

字符长度是一字节 带符号 范围也就是-128~127,也就是你定义一个字符变量的时候他的值范围是这个  注意是变量

 而ASCII码是字符常量对定的,就是ASCII是一些固定的字符常量对应在计算机中的存储,比如键盘上面的一个输入键

 

比如你定义

char a='A'; 这里a只是个变量名,他的值是'A',也就是ASCII 码65

char a=-'A';这里a在计算机中的存储则是-65  就是1(这里接65的二进制表示)

但是 要是你定义

char a='A'+'A';则会报错  因为a的值超出了127

定义 unsigned char a='A'+'A';则是正错的,因为a的值没有超出范围

  不知道这样你理解了吗

提问人的追问   2011-03-05 12:53
我知道这层意思,但我问的是,定义一个有符号字符型变量,给这个变量赋值必须是字符,这就涉及到了ASCⅡ值,例如能给这个变量赋值一个字符(其对应的ASCⅡ是255)么?
团队的补充   2011-03-05 12:57

你还是理解错了  ASCII是一些字符常量的存储值,并不是变量的值,变量的值是通过常量的输入来获得的   比如unsigned  char a='A'+'A'+'...';反正你自己找个加到255

但是这255不是ASCII码值 只是a的值,  而'A'的值才是ASCII码

提问人的追问   2011-03-05 14:37
还是不明白,我知道数值是数值,ASCII码是ASCII码,但是给一个char变量赋值时,比如char a='A',实质上就是给变量a赋了一个65的值,而A的ASCII码值是65,给a赋的值就等于A的ASCII码值,既然没有负的ASCII值,那么char变量负的数值范围又有什么意义?求指点.
团队的补充   2011-03-05 15:04

现在的UNICODE字符集双字节,能表示的字符多着了 符号的估计表示的什么中文,日语啊什么乱七八糟的符号

评价答案

其他答案


LS说的很对,LZ告诉你一个容易理解的:int与char通用
问问团队热血传奇攻沙小队共1人编辑答案
2011-03-05 12:47
貌似你没学过补码
提问人的追问   2011-03-05 14:12
这跟补码又有什么关系.
回答人的补充   2011-03-05 14:12
表示负数的时候就要用补码呀
提问人的追问   2011-03-05 14:16
那有如何,你还是不清楚我要问什么吧.
回答采纳率:31.5% 2011-03-05 13:00
一般我们在做程序时单个字符用char,而字符串用string。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
字符型
ASCII码表
C语言基本数据类型之字符型
识得庐山真面目—详解ASCII编码
C/C char和int的区别
ASCII码表及扩展ASCII码表
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服