Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
CRC32 returns negative on big files
Message
From
31/07/2011 12:48:57
 
 
To
31/07/2011 12:34:08
General information
Forum:
ASP.NET
Category:
Coding, syntax and commands
Environment versions
Environment:
VB 9.0
OS:
Windows 7
Network:
Windows 2003 Server
Database:
MS SQL Server
Application:
Web
Miscellaneous
Thread ID:
01519635
Message ID:
01519752
Views:
19
>>>>>(1) The short way is to cast the return result to UInteger, and change the return type of GetCrc32() to UInteger
>>>>
>>>>IIRC you can't do that cast in VB (although you can in C# using 'unchecked')
>>>
>>>
>>>Viv,
>>>
>>>I don't know, but I'd be very surprised if it weren't possible
>>
>>Just tried this which won't compile:
Dim test As UInteger = DirectCast(Int32.MaxValue, UInteger)
>>If it was a valid cast what resulting UInteger would you expect from a negative value signed int ?
>>In C#:
unchecked { UInt32 test = ((UInt32)Int32.MinValue); }
>yields 2147483648....
>
>
>Firstly, I'm surprised that it yields an even number
>
>Secondly, if that's the case, I guess you'll need t check whether is was negative, and if so, set the left most bit after the 'cast'

But if the signed int is negative then there is no accurate equivalent for an unsigned int ?
I'm assuming the C# cast simple treats the 32 bits as being an unsigned value ?
FWIW:
unchecked { Int32 test = ((Int32)UInt32.MaxValue);
gives -1
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform