C# 是否仍有将long转换为int的方法?

C# 是否仍有将long转换为int的方法?,c#,casting,integer,long-integer,C#,Casting,Integer,Long Integer,也许这是一个愚蠢的问题:我不小心在数据库中将long值转换为int值(~1M行),那么是否有任何方法可以使用代码将其还原回来(而不还原数据库)?谢谢 例如: 我的长期价值:636705792000000000 施放后的Int值:158719776 ==>当我只有int值(1587019776)时,有没有办法找到636705792000000000呢?没有,恐怕你已经有效地屏蔽了一半的数据。如果将这些数字转换为二进制,可能会更明显: 636705792000000000 => ‭100011

也许这是一个愚蠢的问题:我不小心在数据库中将long值转换为int值(~1M行),那么是否有任何方法可以使用代码将其还原回来(而不还原数据库)?谢谢

例如: 我的长期价值:636705792000000000

施放后的Int值:158719776


==>当我只有int值(1587019776)时,有没有办法找到636705792000000000呢?

没有,恐怕你已经有效地屏蔽了一半的数据。如果将这些数字转换为二进制,可能会更明显:

636705792000000000 => ‭100011010110000010001000101101011110100110000000000000000000‬
        1587019776 =>                             ‭01011110100110000000000000000000‬

请注意
long
的右半部分如何与
int
的整个部分相同。但是,您已经完全丢失了左半部分。

不,恐怕您已经丢失了数据。不。你失去了一半的价值。如果将值转换为十六进制,则可以清楚地看到值是如何剥离的,以及丢失了什么。long value=0x08D6088B 5E980000,int value=0x5E980000您必须恢复,因为您的
long
值超出了
int
DavidG、Reniuz和fabric的限制:感谢您的帮助