什么是C#中的Java的float.floatToRawIntBits等效方法?

时间:2012-01-09 13:51:12

标签: c# java

C#中的Java的float.floatToRawIntBits方法实现是什么?

1 个答案:

答案 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;