Kam*_*dir 1 c# parsing integer recover
我想恢复这个long被错误转换为的值int
long longValue = 11816271602;
int intValue = (int)longValue; // gives -1068630286
long ActualLong = ?
Run Code Online (Sandbox Code Playgroud)
32( intValue >> 32) 的右移位给出了错误的结果。
嗯,初始值
long longValue = 11816271602L; // 0x02C04DFEF2
Run Code Online (Sandbox Code Playgroud)
是五个字节长。当您将四个字节长的值转换Int32为
int intValue = (int)longValue; // 0xC04DFEF2 (note 1st byte 02 absence)
Run Code Online (Sandbox Code Playgroud)
您不可避免地会丢失第一个字节并且无法将其恢复。