请教两个小问题!
1,long型在内存中占8个字节,float占4个字节,
为什么long x=2; float y=x; 成立?8个字节可以赋值给4个字节吗?而且还没有强制转化?
2,^异或逻辑运算符的用法,哪位老兄可以写个例子体现出异或的特点和用法?
问题点数:0、回复次数:3Top
1 楼steedhorse(晨星)回复于 2005-06-03 09:11:36 得分 0
(1)long到float,不会损失数值的大小。只会损失精度。
(2)比如
byte a = 5;
byte b = 6;
由于5的二进制是:00000101,6的二进制是:00000110。
按位异或(每一位的结果相同为0,不同为1)的结果是:
00000101
^ 00000110
----------
00000011
所以 a ^ b == 3。Top
2 楼Dan1980()回复于 2005-06-03 09:15:01 得分 0
^异或不是逻辑运算符, 是位运算符(bitwise operator).Top
3 楼yin_slin(一生找北)回复于 2005-06-03 09:19:16 得分 0
long x=2; float y=x;
事实上float表示数的范围比long大多了。而且上述语句是做过转化的,只不过是自动转化。
下面是数据类型由低到高的转化关系:
byte,short,char --> int --> long --> float --> double
long的表示范围:-2(63)---2(63)-1 而float : 3.4e(-038)---3.4e(+038)Top




