1,&和&&短路与和逻辑与的区别
逻辑与(&)和短路与(&&)在运算上对条件的结果判断不会产生影响,但会对条件判断的运算有影响。关键在于,逻辑与(&)在运算时会连续运算所有需要判断的命令.但短路与当遇到false时就会停止运算。
二进制运算和逻辑运算
a.条件操作只能操作布尔型的,而逻辑操作不仅可以操作布尔型,而且可以操作数值型
b.逻辑操作不会产生短路.运算符||其中任何一个为true,则结果就返回true,不会执行后面的操作了,这就叫短路。如: int a = 0; int b = 0;
if( (a = 3) > 0 || (b = 3) > 0 ) //操后a =3,b=0.
if( (a = 3) > 0 | (b = 3) > 0 ) //操后a =3,b=3。
2,a = a + b 与 a += b 的区别?
主要的区别是在运算时精度的问题,当然了-=、*=、/=,%=也都是一个道理
这两种形式的主要区别在于是否进行数据类型的自动转换,当两个操作数同类型时这两种形式的运算结果是没有差别的,当两个操作数数据类型不同时,且左操作数即保存结果的操作数的数据精度要低。
3,float的精度问题.强制类型转换
3*0.1 == 0.3 将会返回什么?true 还是 false?false,因为有些浮点数不能完全精确的表示出来。浮点数的精度问题
float型float f=3.4是否正确 答案:不正确。原因:精度不准确,应该用强制类型转换,如下所示:float f=(float)3.4 或float f = 3.4f
short s1 = 1; s1 = s1 + 1;有什么错?s1+1结果精度转换为整形,整形不能赋值给short类型的s1
4、
浙公网安备 33010602011771号