Casa Finanza personale Esprimere numeri binari in C ++ - dummies

Esprimere numeri binari in C ++ - dummies

Sommario:

Video: C - 22 - Conversione da decimale a binario 2024

Video: C - 22 - Conversione da decimale a binario 2024
Anonim

Le variabili C ++ sono memorizzate internamente come i cosiddetti numeri binari. I numeri binari vengono memorizzati come una sequenza di valori 1 e 0 noti come bit. La maggior parte delle volte, non è davvero necessario gestire i bit particolari che si usano per rappresentare i numeri. A volte, tuttavia, è pratico e pratico armeggiare con i numeri a livello di bit, quindi C ++ fornisce un insieme di operatori per questo scopo.

Gli operatori logici cosiddetti a bit operano sui loro argomenti a livello di bit. Per capire come funzionano, esaminare prima come i computer memorizzano le variabili.

Il sistema dei numeri decimali

I numeri con cui hai familiarità dal momento in cui potresti contare per primi sulle dita sono noti come numeri decimali perché sono basati sul numero 10. In generale, il programmatore esprime le variabili C ++ come numeri decimali. Quindi potresti specificare il valore di var come (diciamo) 123, ma considera le implicazioni.

Un numero come 123 si riferisce a 1 * 100 + 2 * 10 + 3 * 1. Tutti questi numeri di base - 100, 10 e 1 - sono potenze di 10.

123 = 1 * 100 + 2 * 10 + 3 * 1

Espresso in un modo leggermente diverso (ma equivalente), 123 ha il seguente aspetto:

123 = 1 * 10 < 2 + 2 * 10 1 + 3 * 10 0 Ricorda che

qualsiasi numero alla potenza zero è 1. Altri sistemi numerici

Bene, ok, usare 10 come base (o

base ) del nostro sistema di conteggio probabilmente deriva da quelle 10 dita umane, gli strumenti di conteggio originali. Una base alternativa per un sistema di conteggio poteva essere altrettanto facilmente 20.

Se il nostro schema di numerazione fosse stato inventato dai cani, potrebbe essere basato su 8 (una cifra di ciascuna zampa è fuori dalla vista sulla parte posteriore della gamba). Matematicamente, un sistema ottale avrebbe funzionato altrettanto bene: 123

10 = 1 * 8 2 + 7 * 8 1 < + 3 * 8 0 = 173 8 I piccoli 10 e 8 qui si riferiscono al sistema di numerazione, 10 per decimale (base 10) e 8 per ottale (base 8). Un sistema di conteggio può utilizzare qualsiasi base positiva. Il sistema di numeri binari

I computer hanno essenzialmente due dita. I computer preferiscono contare usando la base 2. Il numero 123

10

sarebbe espresso in questo modo: 123 10

= 0 * 2 7 + 1 * 2 < 6 + 1 * 2 5 + 1 * 2 4 + 1 * 2 3 + 0 * 2 2 + 1 * 2 1 + 1 * 2 0 123 10 = 0 * 128 + 1 * 64 + 1 * 32 + 1 * 16 + 1 * 8 + 0 * 4 + 1 * 2 + 1 * 1 = 01111011 2 La convenzione del computer esprime numeri binari usando 4, 8, 16, 32 o anche 64 cifre binarie, anche se le cifre iniziali sono 0.Questo è anche a causa del modo in cui i computer sono costruiti internamente. Poiché il termine cifra

si riferisce a un multiplo di 10, una cifra binaria

è chiamata un bit (un'abbreviazione di cifra binaria >). Un byte è composto da 8 bit. (Chiamare una cifra binaria un byte-it non sembrava una buona idea.) La memoria viene solitamente misurata in byte (come i rotoli sono misurati in unità di dozzina di panettieri). Con una base così piccola, è necessario utilizzare un grande numero di bit per esprimere numeri. Gli esseri umani non vogliono il fastidio di usare un'espressione come 011110112 per esprimere un valore così banale come 123 10

. I programmatori preferiscono esprimere numeri usando un numero pari di bit. Il sistema ottale - che è basato su 3 bit - era il sistema binario predefinito nei primi giorni di C. Ne vediamo una traccia anche oggi - una costante che inizia con uno 0 si presume essere ottale in C ++. Quindi, la riga: cout << "0173 =" << 0173 << endl; produce il seguente output: 0173 = 123

Tuttavia, l'ottale è stato quasi completamente sostituito dal sistema

esadecimale

, che si basa su cifre a 4 bit.

Esadecimale utilizza le stesse cifre per i numeri da 0 a 9. Per le cifre tra 9 e 16, l'esadecimale utilizza le prime sei lettere dell'alfabeto: A per 10, B per 11 e così via. Pertanto, 123

10 diventa 7B 16, come questo: 123 = 7 * 16 1 + B (cioè 11) * 16 0

= 7B 16 I programmatori preferiscono esprimere numeri esadecimali in multipli di 4 cifre esadecimali anche quando la cifra iniziale in ogni caso è 0. Infine, chi vuole esprimere un numero esadecimale come 7B 16 utilizzando un pedice? I terminali non hanno nemmeno

supporto

pedici. Anche con un programma di videoscrittura, è sufficiente trascinare i caratteri da e verso la modalità di iscrizione solo per digitare due cifre schifose. Pertanto, i programmatori (no pazzi, loro) usano la convenzione di iniziare un numero esadecimale con un 0x. Quindi, 7B diventa 0x7B. Usando questa convenzione, il numero esadecimale 0x7B è uguale a 123 decimale mentre 0x123 esadecimale è uguale a 291 decimale. Lo snippet di codice cout << "0x7B =" << 0x7B << endl; cout << "0x123 =" << 0x123 << endl; produce il seguente output: 0x7B = 123 0x123 = 291

È possibile utilizzare tutti gli operatori matematici su numeri esadecimali nello stesso modo in cui li si applica ai numeri decimali.

Se lo desideri, puoi scrivere numeri binari in C ++ '14 usando il prefisso '0b'. Quindi, 123 diventa 0b01111011.
Esprimere numeri binari in C ++ - dummies

Scelta dell'editore

Come utilizzare le funzionalità dell'app Klout su dispositivi Apple - dummies

Come utilizzare le funzionalità dell'app Klout su dispositivi Apple - dummies

L'esperienza mobile di Klout è più limitato rispetto al sito web completo. Tuttavia, molte funzionalità sono ancora disponibili con l'app per dispositivi mobili, incluso dare + K ai tuoi influenzatori, controllare il tuo punteggio Klout e apportare semplici modifiche al tuo profilo. E con l'implementazione di Klout per il tuo iPhone Passbook puoi persino usare Klout per ottenere ...

Metriche dei social media: App Android SDK di Google Analytics - dummies

Metriche dei social media: App Android SDK di Google Analytics - dummies

Tracciamento delle metriche di un'applicazione ( un'app) è stata semplificata, ma le app sono ancora isolate. Puoi tenere traccia di ogni app, ma le soluzioni sono ancora in fase di creazione per tenere traccia di tutte le app. Per andare avanti con Google Analytics SDK per la tua app Android, segui questi passaggi: Scarica l'SDK di Google Analytics per Android. Aggiungi la libreria libGoogleanalytics. jar ...

Metriche sui social media: individuazione del momento di trazione con Google+ - dummies

Metriche sui social media: individuazione del momento di trazione con Google+ - dummies

In i social media, il momento di trazione potrebbe anche essere chiamato il "miglior tempo per condividere su Google+ o altri siti sociali. "Il momento migliore per te potrebbe non essere il momento migliore per i tuoi colleghi generatori di contenuti. (Il merito di questo suggerimento principale va a Christopher Penn che per primo condivise la sua osservazione sulla ricerca ...

Scelta dell'editore

Combinazione di due foto sulla tua Nikon D3400 con sovrapposizione immagini - manichini

Combinazione di due foto sulla tua Nikon D3400 con sovrapposizione immagini - manichini

L'opzione Sovrapposizione immagini sulla Il menu di ritocco di Nikon D3400 consente di unire due foto in una. Questa opzione è stata utilizzata per combinare una foto di un lupo mannaro, mostrato a sinistra, con una scena da giardino notturno, mostrata nel mezzo. Il risultato è l'immagine spettrale mostrata a destra. Oooh, spaventoso! Su ...

Scelta di una modalità Esposizione per una Nikon DSLR - manichini

Scelta di una modalità Esposizione per una Nikon DSLR - manichini

La prima impostazione da prendere in considerazione quando si le riprese con la tua Nikon D3100, D5100 o D7000 sono la modalità di esposizione, che puoi selezionare tramite la ghiera dei modi. La tua scelta determina la quantità di controllo che hai rispetto a due impostazioni di esposizione critiche - diaframma e tempo di posa - oltre a molte altre opzioni, incluse quelle relative ...

Scelta del formato immagine JPEG per una reflex Nikon - dummies

Scelta del formato immagine JPEG per una reflex Nikon - dummies

Offerte Nikon D3100, D5100 o D7000 i due tipi di file comuni nella maggior parte delle fotocamere digitali odierne: JPEG e Camera Raw, o semplicemente Raw in breve, che passa dallo specifico moniker NEF (Nikon Electronic Format) sulle fotocamere Nikon. Il tipo di file, talvolta noto anche come formato file, determina come i dati dell'immagine ...

Scelta dell'editore

Comprensione della struttura delle classi Java - dummies

Comprensione della struttura delle classi Java - dummies

Impossibile creare un'applicazione Java senza creare una classe. Tuttavia, i modi in cui si usano le classi all'inizio quando si apprendono su di essi sono stati relativamente semplicistici - Java è in grado di avere una complessità considerevolmente maggiore, che è il punto di questo capitolo. Le classi hanno una struttura specifica. Proprio come i progetti ...

Come utilizzare i metodi astratti in Java - dummies

Come utilizzare i metodi astratti in Java - dummies

Sia le interfacce che le classi astratte hanno metodi astratti in Java. Ma i metodi astratti giocano ruoli leggermente diversi in questi due tipi di tipi di riferimento. Come puoi tenere tutto dritto nella tua mente? La prima cosa da fare è ricordare che nessuno impara a conoscere i concetti di programmazione orientata agli oggetti senza ottenere molti ...

Come utilizzare l'interfaccia CharSequence in Java - dummies

Come utilizzare l'interfaccia CharSequence in Java - dummies

L'API Java include un'interfaccia utile chiamata CharSequence. Tutte e tre queste classi - String, StringBuilder e StringBuffer - implementano questa interfaccia. Questo metodo esiste principalmente per consentire di utilizzare String, StringBuilder e StringBuffer in modo intercambiabile. A tal fine, molti dei metodi delle classi String, StringBuilder e StringBuffer utilizzano CharSequence come parametro ...