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、

 

 

posted on 2018-03-15 00:26  玉月晴  阅读(221)  评论(0)    收藏  举报