C#中的Java的float.floatToRawIntBits方法实现是什么?
答案 0 :(得分:9)
如果我正确理解Java版本,那应该是:
float value = 123.23F;
byte[] bytes = BitConverter.GetBytes(value);
int result = BitConverter.ToInt32(bytes, 0);
这将表示float的字节放入一个整数。
或者,更复杂(但可能更快)的方法是创建结构:
[StructLayout(LayoutKind.Explicit)]
public struct FloatToIntConverter
{
[FieldOffset(0)]
public int IntValue;
[FieldOffset(0)]
public float FloatValue;
}
FloatToIntConverter converter = new FloatToIntConverter();
converter.FloatValue = value;
int result2 = converter.IntValue;