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

来源:百度文库 编辑:九乡新闻网 时间:2024/04/29 12:18:16

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字符集双字节,能表示的字符多着了 符号的估计表示的什么中文,日语啊什么乱七八糟的符号

评价答案
  • 您已经评价过!好:0
  • 您已经评价过!不好:0
  • 您已经评价过!原创:0
  • 您已经评价过!非原创:0
  • c语言二维数组 char型
  • char型数组占几个字节
  • unsigned char
  • java char数组
  • char数组转string
  • cstring char数组
  • java char数组转int
  • char数组转化为int

其他答案


LS说的很对,LZ告诉你一个容易理解的:int与char通用
问问团队热血传奇攻沙小队共1人编辑答案 2011-03-05 12:47
  • 您已经评价过!好:0
  • 您已经评价过!不好:0
貌似你没学过补码
提问人的追问   2011-03-05 14:12
这跟补码又有什么关系.
回答人的补充   2011-03-05 14:12
表示负数的时候就要用补码呀
提问人的追问   2011-03-05 14:16
那有如何,你还是不清楚我要问什么吧.
靈雙兒
    回答采纳率:31.5% 2011-03-05 13:00
    • 您已经评价过!好:0
    • 您已经评价过!不好:0
    一般我们在做程序时单个字符用char,而字符串用string。