char c1,c2; c1=197; c2=198; printf("c1=%c,c2=%c\n",c1,c2); printf("c1=%d,c2=%d\n",c1,c2); return 0;
#include
int main()
{
char c1,c2;
c1=197;
c2=198;
printf("c1=%c,c2=%c\n",c1,c2);
printf("c1=%d,c2=%d\n",c1,c2);
return 0;
}
运行后为什么是C1=?,C2=?
C1=-59,C2=-58,
人气:235 ℃ 时间:2020-05-21 02:44:33
解答
char类型的范围是 -128-127
unsigned char类型的范围是 0-255
你定义的超出范围了,溢出了.嗯 然后又怎么会是C1=?,C2=?C1=-59,C2=-58没有对应的字符,或对应的字符不可打印就显示??这个了。197转换成二进制是11000101截取后八位也就是1000101最前面的1表述负数,负数都是用补码表示的,转换成反码为1000100转换成原码为0111011也就是 59,所以显示为 -59了。截取后八位也就是 1000101?这不是7位吗?11000101截取后八位也就是1000101这里有点错误,截取后八位也就是11000101,写错了,最前面的一位是符号位,所以后面的转换中,不需要考虑其符号位。
推荐
- 在C语言中,执行下面两个语句后,输出的结果为( ).char c1=97,c2=98; printf("%d %c",c1,c2);为什么
- 下面程序段的输出是( ) char c1=’b’,c2=’e’; printf(“%d,%c\n”,c2-c1,c2+’A’-‘a’);
- 对于以下程序代码段,叙述正确的是: char c1='D', c2='d';printf("%c\n", (c1,c2));
- 若有以下定义和语句 char c1='b',c2='e'; printf("%d,%c",c2-c1,c2-'a'+'A
- please,read,roses,book,I,that,can,about怎样连词成句
- 一个长方体通风管,每根8米,横截面是边长为50厘米的正方形.做一根这样的通风管需要多少平方米的铁皮?
- 如图,已知菱形ABCD的周长为16厘米,∠ABC等于120°,求对角线BD和AC的长
- 在温柔舒适的花园中,兰草恪守本分,娴静恬淡,默默奉献,丰富人间香与美,从不张扬;在荒中僻谷,兰草仍然生机勃勃,奋发向上,散发出缕缕清香,不为沦落深山而自弃;在沧海横流,洪水滔天的绝境中,兰草(
猜你喜欢