Quali sistemi numerici sono utili nell'informatica?

2

Mi chiedo quale sistema numerico stiano usando diversi programmatori, o che userebbero se la loro lingua avesse il supporto per loro. Ad esempio, in C ++ possiamo usare:

  • Ottale con il prefisso 0 (ad esempio 0377 )
  • Decimale per impostazione predefinita (ad esempio 255 )
  • Esadecimale facendo il prefisso con 0x (ad esempio 0xff )

Quando si lavora con la maschera di bit, sto usando un esadecimale, ma a volte vorrei essere in grado di esprimere direttamente i numeri binari . So che alcuni linguaggi di programmazione lo supportano con la sintassi 0b (ad esempio 0b11111111 ).

Esiste qualche altro sistema numerico utile in alcuni domini di informatica (ad esempio crittografia, codec, grafica 3D, ecc.)?

    
posta authchir 03.11.2012 - 15:01
fonte

2 risposte

4

Per motivi di informatica teorica, la branca della matematica astratta, tutto viene fatto comodamente in base10, che normalmente operiamo, o base2, perché è la cosa più semplice da ragionare.

Nel senso più generale dell'informatica, cioè delle cose che probabilmente studierai per un diploma di laurea, la situazione è molto simile. Praticamente tutto sarà fatto semplicemente in base10. Il motivo principale per cui lavorerai con base2 sono le classi di architettura quando impari la rappresentazione interna dei numeri in una CPU e amp; come sono operati. Base8 e base16 potrebbero venire se ti trovi a lavorare in operazioni di assemblaggio o SO a basso livello.

Se vieni giù, binario, ottale e esadecimale, essendo tutti poteri di due, sono essenzialmente equivalenti: sono modi convenienti per rappresentare una sequenza di bit. Man mano che il tempo passa, ci sono meno motivi per preoccuparsi di loro per l'informatica generica. Usare le maschere di bit (o i codici esadecimali equivalenti) era uno strumento essenziale per risparmiare memoria quando si ha a che fare con un sistema che ha solo pochi KB di memoria ma in un'epoca in cui le icone del desktop possono essere superiori a un megabyte, raramente vale la pena . Ovviamente, c'è ancora gente che scrive interfacce hardware di basso livello, servizi di rete e amp; facendo lo sviluppo integrato, ma la maggior parte dei programmatori sono sempre più isolati da quelli con livelli di astrazione.

Non sto dicendo che sia sbagliato apprenderli - può essere abbastanza utile conoscerli (per esempio, i permessi dei file Unix usano ancora Octal) ma non aspettarti di usarli tutti i giorni.

    
risposta data 03.11.2012 - 22:22
fonte
5

link

Minuti e secondi usano base60, la codifica base64 usa base64 (doh), gli angoli radianti usano Pi come base, gli stock us usati per avere strane frazioni invece di decimali , le date hanno base irregolare (quantità differente di giorni nel mese) e così via.

In generale, qualsiasi sistema può rivelarsi utile in determinate condizioni, ma il più delle volte è dettato dalle tradizioni di dominio.

    
risposta data 03.11.2012 - 15:20
fonte

Leggi altre domande sui tag