Visualizzazione risultati 1 fino 10 di 10

Discussione: Lavorare con i BIT. C'è un limite massimo? Dipende dall'OS?

  1. #1
    Guest

    Predefinito Lavorare con i BIT. C'è un limite massimo? Dipende dall'OS?

    Sto programmando un sistema di permessi che lavora con i bit. Ora però mi sorge spontanea la domanda: qual è il limite di opzioni che posso inserire?

    Consigliate o sconsigliate questo metodo? Se si, dove e perché?

    Grazie in anticipo.


  2. #2
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,762

    Predefinito

    Un pò come il chmod...

    L'ho usato per salvarci in un forum i permessi degli utenti.... Ed è molto comodo. Tra l'altro, è anche molto "piccolo" il dato da salvare: in un numero, ci salvavo tutti i permessi (una decina, penso.. quindi ci stava tutto in un numero non maggiore di "1024"!).

    Adesso che ci penso, però, dopo molti bit, aggiungendo ulteriori bit il numero diventa enorme (un bit in più, raddoppia il numero), quindi forse dopo un pò sarebbe meglio creare un secondo numero etc etc... Il limite di opzioni massime non saprei: bisogna vedere il numero maggiore di PHP (perché stiamo parlando di PHP, vero?)... Comunque è molto alto!

    Ciao!
    Ultima modifica di alemoppo : 18-01-2012 alle ore 01.49.48

  3. #3
    L'avatar di saitfainder
    saitfainder non è connesso Sëniör Stäff
    Data registrazione
    06-12-2002
    Residenza
    Torino
    Messaggi
    8,715

    Predefinito

    Dipende dal tipo che stai usando. Se è un intero da 32-bit sono ovviamente 32. Considera che i server di Altervista lavorano proprio a 32-bit, quindi andare oltre potrebbe creare dei problemi.

    Piuttosto, se stai usando il database, proverei ad usare il tipo SET di MySQL che permette di definire un campo che può contenere fino a 64 etichette che possono essere attive indipendentemente una dall'altra. In pratica è quello che stai facendo tu con in più il fatto che ad ogni bit è associato una nome testuale che rende più comprensibile il tutto.


    «È una mia peculiarità distorcere la verità e inventarne di nuove.»
    «I tuoi orientamenti hanno su di me un effetto prossimo allo zero.»


  4. #4
    Guest

    Predefinito

    Esatto, devo fare proprio un sistema di permessi per il forum.

    L'unica limitazione è il fatto che non posso avere più di un tot di opzioni, anche se ora che ci penso, ogni BIT è un opzione, quindi presumo un massimo di 32 in un x86 e 64 in un x64, o sbaglio?

    Il numero più alto in PHP in un sistema a 32bit è (int) 2147483647, mentre in uno a 62 è (int) 9223372036854775807 (anche in negativo).

    @saitfander: in pratica è come dare un alias ed automaticamente mi viene creato il valore int e bin dell'alias sino ad un massimo di 64 opzioni?

    Grazie per le risposte.


  5. #5
    L'avatar di binarysun
    binarysun non è connesso Utente storico
    Data registrazione
    02-07-2004
    Messaggi
    2,017

    Predefinito

    Sinceramente non capisco cosa vuoi fare.
    Se il tuo problema occupare il minor spazio possibile allora usa i char, un char occupa 8 bit, e lo puoi valorizzare con numeri e lettere.
    "L'intelligenza è una pianta che va curata continuamente.
    Dovreste vedere com'è bello, il mio bonsai."
    Rat-man®

    [Gradient Text]
    [Su che server sei?]
    ->flickr

  6. #6
    Guest

    Predefinito

    Il mio problema non è lo spazio (ne parlammo anche in un altro post dove scrissi che son fissato con l'ottimizzazione), ma fare un sistema di permessi dinamico, non complesso e che, se possibile, occupi il meno spazio possibile sia in memoria che nel DB, ma questo è l'ultimo dei problemi.

    Il sistema dei permessi sarà utilizzato in tutto il CMS e saranno dei semplici switch si/no, quindi mi sono buttato sui bit (1/0), dato che il sistema è ottimizzato su TUTTI i fronti.

    Ho chiesto quali sarebbero stati i limiti e, nel caso, se avessero impedito l'utilizzo di questo metodo per fare, appunto, il sistema dei permessi su scritto. Poi ho chiesto qualche altra valida alternativa al sistema binari, ma che non sia troppo invasivo.

    Ho letto del sistema ACL, ma prima di prenderlo in considerazione, vorrei capire cosa mi conviene di più.


  7. #7
    L'avatar di saitfainder
    saitfainder non è connesso Sëniör Stäff
    Data registrazione
    06-12-2002
    Residenza
    Torino
    Messaggi
    8,715

    Predefinito

    Citazione Originalmente inviato da biccheddu Visualizza messaggio
    L'unica limitazione è il fatto che non posso avere più di un tot di opzioni, anche se ora che ci penso, ogni BIT è un opzione, quindi presumo un massimo di 32 in un x86 e 64 in un x64, o sbaglio?
    Corretto. Te l'ho anche scritto.

    Citazione Originalmente inviato da biccheddu Visualizza messaggio
    @saitfander: in pratica è come dare un alias ed automaticamente mi viene creato il valore int e bin dell'alias sino ad un massimo di 64 opzioni?
    Dai una letta alla documentazione. È molto semplice.


    «È una mia peculiarità distorcere la verità e inventarne di nuove.»
    «I tuoi orientamenti hanno su di me un effetto prossimo allo zero.»


  8. #8
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,762

    Predefinito

    {una mia curiosità}

    Ma se ad esempio facciamo
    Codice PHP:
    $v = 2^80;
    (su una macchina x64).
    L'interprete non lo "spezza" in due variabili da 64?
    Oppure usa mantissa/esponente, quindi ancora ci stà largamente?
    E se scriviamo
    Codice PHP:
    $v = 100000000000000000000;
    (1 exp 20), come si comporta?

    Grazie,
    Ciao!

  9. #9
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,745

    Predefinito

    Stando alla guida, se il valore scritto supera i limiti, viene interpretato come numero in virgola mobile.
    Per effettuare calcoli esatti con precisione arbitraria c'è questa libreria: http://www.php.net/manual/en/intro.gmp.php, che spezza il numero in tante word e poi esegue le operazioni su queste.

  10. #10
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,762

    Predefinito

    Grazie karl.. mi ero dimenticato

    Ciao!

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •