1,long型在内存中占8个字节,float占4个字节,
   为什么long x=2; float y=x; 成立?8个字节可以赋值给4个字节吗?而且还没有强制转化?2,^异或逻辑运算符的用法,哪位老兄可以写个例子体现出异或的特点和用法?

解决方案 »

  1.   

    (1)long到float,不会损失数值的大小。只会损失精度。
    (2)比如
    byte a = 5;
    byte b = 6;
    由于5的二进制是:00000101,6的二进制是:00000110。
    按位异或(每一位的结果相同为0,不同为1)的结果是:
      00000101
    ^ 00000110
    ----------
      00000011
    所以 a ^ b == 3。
      

  2.   

    ^异或不是逻辑运算符, 是位运算符(bitwise operator).
      

  3.   

    long x=2; float y=x;
    事实上float表示数的范围比long大多了。而且上述语句是做过转化的,只不过是自动转化。
    下面是数据类型由低到高的转化关系:
    byte,short,char --> int --> long --> float --> doublelong的表示范围:-2(63)---2(63)-1 而float : 3.4e(-038)---3.4e(+038)