有问题就有答案
Q1:C语言 float a=1.1f 输出a值显示是0.11e10 还是0.111111e10
不会成为 0.11e10 , 也不会成为 0.111111e10 float a=1.1f;printf("%g\n", a );输出 1.1 如果用默认 %f %e 格式输出:printf("%e %f\n", a,a );输出 1.100000e+000 1.100000
Q2:float a=1.0f 这里的1.0f中的“f”代表什么,有什么意思,在C语言里面,解答详细点啊!!!
float代表浮点型数据类型,浮点型数据又分为单精度和双精度两种,1.0小写f或者大写F代表他是单精度的,如果1.0后面跟的是小写d后者大写D代表他是双精度的。希望我的解答对你有帮助。
Q3:请问float a=0.1f是什么意思?
0.1f是指值为0.1的浮点型数据
Q4:float a=1.0f在内存中的表示是3f800000,这个3f800000是怎么得出的?麻烦谁解答下
1.0f的二进制表示为3f800000,即0 01111111 00000...其中1位符号位为0,表示正数。8位阶码为01111111,即127,根据IEEE754标准,从二进制阶码转化为实际指数,需要减去固定偏移2^7-1,即127,所以实际指数为127-127=0。尾数部分的1为规约形式的浮点数的一位隐含的二进制有效数字,这里未出现,其他23位尾数这里为全0。那么1.0f = + 1 * 2^0
Q5:float f = 0.1f; 最后的f 是什么意思?
浮点数的意思。如果不加那个f,编译器会默认0.1是双精度double类型的数据。
Q6:Double a = new Float(1.0)为什么错了,如果在1.0后面加上f对吗
new是用来动态分配内存的,此处不能用。a是定义的double型,使用强制转换也应该是用double可以改成这样:double a =(double )1.0;其实是没有意义的。直接double a=1.0;如果你之前定义了 float b =1.0;那么double a =(double) b;这是合理的。强制将float型的b转化为double型。