如何通过float表示将float转换为uint?

Pab*_*blo 7 c# floating-point int

C我将这样做以将数字的浮点表示转换为DWORD.从地址中获取值并将内容转换为DWORD.

dwordVal = *(DWORD*)&floatVal;
Run Code Online (Sandbox Code Playgroud)

所以例如44.54321将成为0x42322C3F.

我怎么能这样做C#呢?

p.s*_*w.g 12

你可以使用这个BitConverter类:

uint value = BitConverter.ToUInt32(BitConverter.GetBytes(44.54321F), 0);
Console.WriteLine("{0:x}", value); // 42322c3f
Run Code Online (Sandbox Code Playgroud)

您还可以使用unsafe上下文直接执行此操作:

float floatVal = 44.54321F;
uint value;
unsafe { 
    value = *((uint*)(&floatVal));
}
Console.WriteLine("{0:x}", value); // 42322c3f
Run Code Online (Sandbox Code Playgroud)

但是,我强烈建议避免这种情况.请参阅您应该在C#中使用指针(不安全代码)吗?