Visualizzazione dei risultati da 1 a 6 su 6

Discussione: [c++] enum e "|"

  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    220

    [c++] enum e "|"

    ciao a tutti!

    io ho un problemino con gli enum:
    non capisco cosa faccia l'operatore | usato con gli elementi dell'enumerazione.

    esempio:
    codice:
    enum MioEnum {
            a = 1
            b = 2
            c = 3  
            d = a | b | c
    };
    alla fine d quanto vale?

  2. #2
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,563
    Ne sparo una grossa...

    Rappresentiamo i bit in binario (solo gli ultimi 8)

    a = 1 = 00000001
    b = 2 = 00000010
    c = 3 = 00000011

    Facendo un OR del risultato... d sarà uguale a 3.
    "Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)

    "Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)

    http://xvincentx.netsons.org/programBlog

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    220
    l'avevo pensato anch'io, ma che senso ha?

  4. #4
    In questo caso specifico non mi pare che abbia molto senso, ma ci sono diversi casi in cui può essere utile.
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,563
    Di solito viene usato nei BitFlags che indicano per ogni bit una data funzionalità...ad esempio..

    codice:
    enum Opzioni
    {
       SOMMA_NUMERI_PARI = 1;
       SOMMA_NUMERI_DISPARI = 1 << 1;
       SOMMA_PARI_NEGATIVI = 1 << 2;
       SOMMA_DISPARI_NEGATIVI = 1 << 3;
       SOMMA_TUTTI = SOMMA_NUMERI_PARI|SOMMA_NUMERI_DISPARI|SOMMA_PARI_NEGATIVI|SOMMA_DISPARI_NEGATIVI;
    }
    "Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)

    "Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)

    http://xvincentx.netsons.org/programBlog

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    In effetti, sarebbe piu' corretto e avrebbe un senso, questo

    codice:
    enum MioEnum {
            a = 1,
            b = 2,
            c = 4,  
            d = a | b | c
    };
    No MP tecnici (non rispondo nemmeno!), usa il forum.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.