int number = 0;
int result = 0;
result = number | 0x80000000
Why is the compiler telling me this is converting a long to an int.
Where's the long? 0x80000000 is 32 bits, what am I missing?
Arne Vajhøj - 27 Aug 2007 02:37 GMT
> int number = 0;
> int result = 0;
[quoted text clipped - 3 lines]
> Why is the compiler telling me this is converting a long to an int.
> Where's the long? 0x80000000 is 32 bits, what am I missing?
0x80000000 is an uint (not an int).
And apperently int | uint gives a long.
Arne
Michael C - 27 Aug 2007 02:56 GMT
>> Why is the compiler telling me this is converting a long to an int.
>> Where's the long? 0x80000000 is 32 bits, what am I missing?
>
> 0x80000000 is an uint (not an int).
>
> And apperently int | uint gives a long.
This is a bit of a pita in C# imo when defining constants etc.
Michael
Ben Voigt [C++ MVP] - 28 Aug 2007 21:54 GMT
> int number = 0;
> int result = 0;
[quoted text clipped - 3 lines]
> Why is the compiler telling me this is converting a long to an int.
> Where's the long? 0x80000000 is 32 bits, what am I missing?
If you think that's fun, try:
byte a, b, c;
a = 1;
b = 5;
c = a & b;