在C
此,我将数字的浮点表示转换为DWORD。从地址中获取值并将内容转换为DWORD。
dwordVal = *(DWORD*)&floatVal;
因此例如44.54321
将成为0x42322C3F
。
我该怎么做C#
?
您可以使用BitConverter
该类:
uint value = BitConverter.ToUInt32(BitConverter.GetBytes(44.54321F), 0);
Console.WriteLine("{0:x}", value); // 42322c3f
您还可以使用unsafe
上下文更直接地执行此操作:
float floatVal = 44.54321F;
uint value;
unsafe {
value = *((uint*)(&floatVal));
}
Console.WriteLine("{0:x}", value); // 42322c3f
但是,我强烈建议您避免这种情况。请参见是否应该在C#中使用指针(不安全代码)?
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句