关于c语言中char型变量的取值范围问题

详解C语言中的char数据类型及其与int类型的转换
转载 &发布时间:日 16:24:32 & 作者:低调小一
这篇文章主要介绍了详解C语言中的char数据类型及其与int类型的转换,是C语言入门学习中的基础知识,需要的朋友可以参考下
C语言中的char变量
char是C/C++整型数据中比较古怪的一个,其它的如int/long/short等不指定signed/unsigned时都默认是signed。虽然char在标准中是unsigned(因为char类型提出的初衷是用来表示ascii码,ascii码的范围是0~127),但实际情况中究竟是signed还是unsigned取决于编译器。
可通过下面程序判断编译器的默认char类型:
void char_type()
char c=0xFF;
printf("signed");
elseif(c==255)
printf("unsigned");
printf("error!");
当你不确定编译器的默认char类型时,就用显示声明:signed char和unsigned char;
在C/C++语言中,char变量为一个字节,8位,signed char表示的范围:-128~127【-128在内存中的二进制表示为,127在内存中的表示为】;unsign char表示的范围:11 1111,即0~255;
注意:整数在内存中是以补码存取的,正数的补码:等于自己,负数的补码:取反加1,例如:127在内存中表示为, -127在内存中表示为~()+1=; 假定某内存单元p的内容是,那么它一定是255吗?实际上取决于你的代码是要把它看成有符号还是无符号数,如果是无符号则表示255,如果是有符号则表示-1【对于有符号数,最高位为符号位,1表示负,0表示正】:
signed char c=*p; //c=-1
unsigned char c=*p;//c=255
这也解释了上面这段代码能判断编译器默认char类型。
char型数字转换为int型
a[i] - '0'
#include &stdio.h&
#include &stdlib.h&
#include &string.h&
int main()
char str[10];
while(scanf("%s", str) != EOF)
for(i = 0, len = strlen(str); i & i++)
printf("%d", str[i] - '0');
printf("\n");
int类型转化为char类型
a[i] + '0'
#include &stdio.h&
#include &stdlib.h&
#include &string.h&
int main()
int number,
char str[10];
while(scanf("%d", &number) != EOF)
memset(str, 0, sizeof(str));
while(number)
str[i ++] = number % 10 + '0';
number /= 10;
puts(str);
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
下载作业帮安装包
扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
C语言问题请大神们15.在C语言中,char型数据在内存中的存储形式是( D)。 答案解析:
D.ASCII码 郝斌说字符的存储本质上与整数相同,把字符通过ASCII转换成整数,再存储,那ASCII码只是转换啊,真正转化成整数应该补码啊ascii码只是把字符转化为整数了而已,整数又是是补码存储的,所以A啊,不是说字符存储的本质与整数相同吗
作业帮用户
扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
不对字符存储在本质上虽然和整数相同,但是他不是整数,也就是说你寸一个A, 他里面就是A,编码为65(也就是ASCII码), 但这个东西不是个int, 如果你要把这个值拿出来赋值给一个int变量的话,他是要做转换的,所以说他们不是一个东西,只不过这个转换通常是隐式的,对于我们使用上来说感觉是一样的补码存储只是针对于数字上的,你存入的东西根本就不是个数字,也就没有补码这一说(补码是为了计算方便的), 换个角度想, 补码真正的作用在于存储负数,而字符型的变量永远都是无符号的
为您推荐:
扫描下载二维码C语言中,char类型数据占多少字节?_百度知道
C语言中,char类型数据占多少字节?
我有更好的答案
1个字节,8位顺便说一下int在不同的编译器中占用的位数不一样在tc中占用2个字节也就是16位在VC中占用4个字节也就是32位亲爱的LZ,如果我的回答能够帮你解决问题,或是对你有帮助,或是对你今后的发展造成积极的影响,那么请您采纳我的回答吧,同时更迫切地希望您能够在采纳的时候帮我打上“能解决”和“原创”,然后把两行的五颗五角星分别点亮,点亮五角星就是点亮你我的希望。 我冲11级了,需要很多综合声望,感谢您的帮助,衷心祝愿您快乐每一天~
1个字节,8bit ,请采纳
1个字节,8个比特
1个字节,8个比特!
其他2条回答
为您推荐:
其他类似问题
c语言的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。欢迎加入我们,一同切磋技术 &
用户名: &&&
密 码: &
共有 4140 人关注过本帖
标题:关于给char型变量赋值的问题
来 自:江西奉新
等 级:论坛游侠
帖 子:114
专家分:105
结帖率:100%
&&问题点数:0&&回复次数:5&&&
关于给char型变量赋值的问题
#include &stdio.h&&&int main(void) {&&&&&double a, b,&&&&&&&&&&int m, n, q,&&&&&& do {&&&&&&printf(&---------------------\n&);&&&&&&printf(&easy calculator\n&);&&&&&&printf(&---------------------\n&);&&&&&&&&do {&&&&&&&&printf(&addition input '+', subtraction input '-', multiplication input '*', division input '/'\n&);&&&&&&&&printf(&please input you want:&)&&&&&&&&&scanf(&%c&, &flag);&&&&&&&&&printf(&you input is %c. yes press 1. no press 0 please choose&);&&&&&&&&scanf(&%d&, &z);&&&&&&&&} while (0 == z);&&&&&&&&if (flag == '+')&&&&&& m=1;&&&&&& else if (flag == '-')&&&&&& m=2;&&&&&& else if (flag == '*')&&&&&& m=3;&&&&&& else if (flag == '/')&&&&&& m=4;&&&&&& do {&&&&&& printf(&do a %c b\n&,flag);&&&&&& printf(&please input a:&);&&&&&& scanf(&%lf&,&a);&&&&&&&&printf(&please input b:&);&&&&&& scanf(&%lf&,&b);&&&&&& printf(&you want do %lf %c %lf ?? yes input 1, no input 0\n&, a, flag, b);&&&&&&&&scanf(&%d&,&q);&&&&&& } while (0 == q);&&&&&&&&switch (m) {&&&&&&&&case 1:&&&&&&&&c=a+b;&&&&&&&&&&&&&&&&&case 2:&&&&&&&&c=a-b;&&&&&&&&&&&&&&&&&case 3:&&&&&&&&c=a*b;&&&&&&&&&&&&&&&&&case 4:&&&&&&&&c=a/b;&&&&&&&&&&&&&&&&}&&&&&& printf(&%lf %c %lf=%lf&, a, flag, b, c);&&&&&&printf(&return? yes input 1, no input 0&);&&&&&&scanf(&%d&, &n);&&&&&&}while (1 == n);&&& return 0; }&&&&&&手机发帖……格式好乱……红色字体在编译成程序的时候显示错误…求解……
搜索更多相关主题的帖子:
等 级:青峰侠
帖 子:687
专家分:1570
你这样写程序。实在是不法看下去了。。
来 自:广东陆丰
等 级:侠之大者
帖 子:188
专家分:473
没办法看 这个在这里加还是那里少一个分号 ;
&printf(&please input you want:&);&&
[ 本帖最后由 变幻小子 于
22:13 编辑 ]
来 自:江西奉新
等 级:论坛游侠
帖 子:114
专家分:105
手机党……不解释……我也不想……
一个人能有多坚强,太安静,就成了孤单。
来 自:江西奉新
等 级:论坛游侠
帖 子:114
专家分:105
变幻小子…我就是没加;…结果错了…谢谢你…
一个人能有多坚强,太安静,就成了孤单。
来 自:江西奉新
等 级:论坛游侠
帖 子:114
专家分:105
加了;完美运行…谢了…
一个人能有多坚强,太安静,就成了孤单。
版权所有,并保留所有权利。
Powered by , Processed in 0.067235 second(s), 7 queries.
Copyright&, BCCN.NET, All Rights Reserved}

我要回帖

更多关于 若ch为char型变量 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信