问几个C语言基本的问题。

第一个就是,float和double怎么区分,我看到老师给的很多数据都是double类型。但是我觉得那些应该是属于float的。
第二个就是,按位求反,有符号的数字 由二进制转化为十进制,是求反加一,还是减一求反。
第三个就是整数提升。-4 用二进制表示是10000100,然后由char提升到int,为什么是1111111110000100 前面八位的11111111一定是11111111么?我不是很懂这个整数提升的原理。
第四个 '\45' '\0' '\a'都是合理常数,它们的类型都是char么~?

float和double都是浮点数,用那个看精度,简单的说,多少有效数字,有效数字不多的话,用float,反之用double,其实都用double也没问题。
二进制转化为十进制没有求反的要求,求反加1,是求补码。
整数提升是符号扩展,简而言之,01111 1111的最高位是0,扩展部分就是0;1000 0000的最高位是1,扩展就是1
'\45' '\0' '\a'都是char,首先有单引号, '\45' '\0' 中\是转义字符,'\a'就不太明白了,好像没有这个表达方式
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-03-23
double支持6位以上小数,float小于六位。
第2个回答  2012-03-22
float是单精度浮点,double是双精度。有时数据溢出,double范围大点,可以防止数据溢出
相似回答