看上这个输出结果

看下这个输出结果。
float a = 1.0f;
cout << boolalpha << ( (int)a == (int&)a ) << endl; // 输出什么? 0
Float b = 0.0f;
cout << boolalpha << ( (int)b == (int&)b ) << endl; // 输出什么? 1

有谁知道为什么吗?

------解决方案--------------------
同类型的变量的引用和变量值是一致的,但强制转换后的变量值和引用值不同,而变量值等于0时除外。