我有一个计算值并返回 UInt32 的快速位级例程。我需要将此值存储在 SQL Server 中的 32 位 int 字段中。我不想增加字段的大小,只想将此函数中的“字节”存储在 int 字段中。
一次请求数百条记录,因此我需要最快的方法将 UInt32 转换为循环中的 int。如果在 UInt32 中设置了最左边的位,它应该设置 int 的符号位(或者做任何“可重复”的事情,真的,但符号位可能是最简单的)。
换句话说,我只希望 UInt32 的 4 个字节变成 32 位 int 的 4 个字节。我可以使用 BitConverter 类,但我不确定这是最快的方法。使用这样的未经检查的区域执行此操作会更快:
UInt32 fld = 4292515959;
unchecked {
return (int)fld;
// -2451337
}
我看到这里已经提出了相反的问题,只是想知道答案是否相同: