1.计算机中 所有的二进制数都是以补码形式来存储和计算的。正数的补码=原码 。 负数的补码=反码+1;
2.Java中,凡是带小数点的叔,都看成Double类型。但是可以强制转换 float f=(float)1.0; float f=1.3f; float和Double的精度》long型;
3.Double值不要用double来判断,因为它是浮点型,数据分两部分储存,是近似值。
public class Type3{
public static void main(String args[]){
double s =0;
for(int i=0; i<10; i++){
s = s + 0.1;
if(s==0.9){//※※切记: double值不要用“==”来判断的,因为它是浮点型数据,只是近似值
System.out.println("okok: "+i );
}
if( Math.abs(s-0.9)<0.00000001){ //要采用近似的方式判断
System.out.println("okok: "+i );
}
}
System.out.println("s="+ s);
}
}
只能用近似来判断。位运算;int32位,与运算填满;异或;两位相同则为0,两位不同则为1
位运算;
public class BitDemo{
public static void main(String args[]){
//乘法==>加法 除法==>减法 ==> 加法
//8421 110
int a = ~3;
System.out.println("a1=" + a);
a = 12 & 10;
System.out.println("a2=" + a);
a = 12 | 10;
System.out.println("a3=" + a);
a = 12 ^ 10;
System.out.println("a4=" + a);
System.out.println("=================");
int x = 23445;
System.out.println( Integer.toBinaryString(x) );
int y = x&255;
System.out.println( Integer.toBinaryString(y) );
//System.out.println(x);
int b=8;
b = b<<2;//左移1位,相当于乘以2. 同理,右移1位相当于除以2
System.out.println( b );
}
}