Probleem met 64 bit enum

Status
Niet open voor verdere reacties.

MvdGaag

Nieuwe gebruiker
Lid geworden
25 jul 2008
Berichten
2
Hallo, ik ben een beginnende c# programmeur (vroeger wel wat meer gespeeld met verschillende talen), dus dit is vast heel simpel op te lossen. Ik wil graag een aantal 64bit getallen enumeraten. Helaas blijven ze zich gedragen als 32 bit getallen, zoals het voorbeeld programmatje aan toont.

Kan iemand mij helpen?

Thanks!

Maarten

Code:
namespace ConsoleApplication1
{
    class Program
    {
        enum test : ulong
        {
            A = 1 << 20,
            B = 1 << 52
        };
        static void Main(string[] args)
        {
            Console.WriteLine("A: " + (ulong)test.A);
            Console.WriteLine("B: " + (ulong)test.B);
            Console.Read();
        }
    }
}


output:
A: 1048576
B: 1048576
 
Dat helpt... Ben overgestapt op c++ (ipv c#)
Ik heb daarover gelezen dat long maar raar gedefinieerd is. Soms 32 bit, soms 64 bit. Soms kan je long long gebruiken voor een 64 bit long, maar het blijft een beetje vaag...

iig goed om altijd __int16 __int32 en __int64 te gebruiken zodat dit soort onduidelijkheiden te voorkomen...

bedankt!
 
Toch vreemd daar een long een value type reference is naar de 64 bits integer.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan