c# float转二进制 16进制 大端序小端序

该代码示例演示了如何将浮点数123.456f转换为32位二进制和16进制字符串,同时展示了小端序和大端序的字节转换过程。通过BitConverter类,将浮点数转换为字节数组,然后分别按照小端序和大端序转换回浮点数,验证了转换的正确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值