【发布时间】:2013-10-15 04:41:17
【问题描述】:
我有字节数组,我想找到 32 位无符号定点数(16.16))使用 c# 和
输出必须是 44100
字节数组:
byte[] m = new byte[4] {172,68,0,0}
Console.WriteLine(" sample rate {0}", BitConverter.ToInt32(m, 0));
输出是 17580。这是错误的:应该是 44100
如何使用 c# 将其转换为(一个 32 位无符号定点数 (16.16) )??
【问题讨论】:
-
输出必须是44100。输入是什么?
-
您是否期望得到非整数值,或者最后两个字节总是为 0?如果要处理非整数值,可以举个例子吗?
-
您的输入似乎是 Big Endian 顺序(当然,如果您有一个 16.16 的定点数,则不能这样打印)
-
44100 = 0xAC44。 172 = 0xAC,68 = 0x44。
-
使用 BitConverter.ToInt32(m, 0) 代替 BitConverter.ToUInt32(m, 0) 的任何原因?
标签: c#