float floatValue = 123.456f; //将浮点数转换为 32 位二进制数据 byte[] floatBytes = BitConverter.GetBytes(floatValue); string binaryString = string.Join("", floatBytes.Select(b => Convert.ToString(b, 2).PadLeft(8, '0'))); Console.WriteLine(binaryString); // 转换为 16 进制字符串 这里的字节序是按照小端序排列的,即低位字节在前,高位字节在后 string hex = BitConverter.ToString(floatBytes).Replace("-", ""); Console.WriteLine("小端序:" + hex); // 小端序 字节数组转换为 float 类型。 byte[] bytes = Enumerable.Range(0, hex.Length) .Where(x => x % 2 == 0) .Select(x => Convert.ToByte(hex.Substring(x, 2), 16)) .ToArray(); float floatValue1 = BitConverter.ToSingle(bytes, 0); Console.WriteLine(floatValue1); // 转换为 16 进制字符串 大端 string hexString = BitConverter.ToString(floatBytes.Reverse().ToArray()).Replace("-", ""); Console.WriteLine("大端序:" + hexString); // 大端 字节数组转换为 float 类型。 byte[] bytes2 = Enumerable.Range(0, hexString.Length) .Where(x => x % 2 == 0) .Select(x => Convert.ToByte(hexString.Substring(x, 2), 16)) .Reverse() .ToArray(); float floatValue2 = BitConverter.ToSingle(bytes2, 0); Console.WriteLine(floatValue2);
01111001111010011111011001000010
小端序:79E9F642
123.456
大端序:42F6E979
123.456