昨天看到一个帖子说小数后面加个f就是单精度,大意就是a*1.01是a乘一个双精度的1.01,但是a*1.01f就是a乘单精度的1.01,速度快几十倍。问题:
1.如果我定义了一个float a=1.01(没有f),再a*a,CPU是单精度还是双精度运算?
2.定义a的时候不赋值,后面通过一系列计算比如a=(float)b/c;bc都是整型,强转b成为float,再赋给a,假如结果就是1.01,是双精度的1.01还是单精度的1.01?
3.单精度的数减去一个整型数,系统会不会自动转换类型?
4.突然想到总结性的一个问题,单精度的数与整型数做运算,CPU转换成双精度算还是单精度算?是不是只有一个不带f的立即数小数才转换成双精度? |