Numeri interi non firmati C ++

Numeri interi non firmati C ++
Il tipo di dati interi in C ++ è ulteriormente diviso in molti sottotipi. Uno di questi sottotipi è i numeri interi non firmati. I numeri interi non firmati sono in grado di conservare solo i numeri interi positivi. I numeri interi non firmati in C ++ sono preferiti mentre si manipolano i bit nei sistemi operativi poiché hai uno spazio di archiviazione limitato. Inoltre, possono anche essere utilizzati per l'indicizzazione dell'array poiché l'indice di un array non può mai essere negativo. Questo articolo è dedicato alla discussione degli interi non firmati in C ++ in Ubuntu 20.04.

La dimensione dei numeri interi non firmati in C ++:

La dimensione di un tipico intero non firmato in C ++ è 4 byte. Per confermare questo, puoi dare un'occhiata al seguente frammento di codice:

In questo frammento di codice, abbiamo appena usato l'istruzione "cout" con la funzione "sizeof". Il parametro che abbiamo implementato a questa funzione è "senza segno". Significa che questa affermazione restituirà la dimensione di un numero intero non firmato nei byte.

Dopo aver eseguito questo frammento di codice C ++, abbiamo ricevuto l'output mostrato nella seguente immagine, che conferma che l'intero intero non firmato in C ++ ha la dimensione di 4 byte:

Come dichiarare un numero intero non firmato in c++?

I numeri interi non firmati possono essere dichiarati molto facilmente in C++. Puoi vedere il seguente frammento di codice dichiarare un numero intero non firmato in C ++ in Ubuntu 20.04:

In questo frammento di codice, abbiamo dichiarato un numero intero non firmato con l'istruzione "Unsigned int var" e assegnato ad essa il valore "255". Quindi, abbiamo usato l'istruzione "cout" per visualizzare il valore di questo numero intero non firmato sul terminale.

In quali scenari dovremmo evitare di usare i numeri interi non firmati in C++?

Ci sono alcune situazioni in cui l'uso degli interi non firmati dovrebbe essere strettamente evitato in C ++ perché così facendo, può portare ad alcuni output altamente errati. Questi errori non possono essere rilevati semplicemente guardando il codice C ++. Inoltre, non possono anche essere rilevati al momento della compilazione. Invece, sarai in grado di catturare quegli errori solo una volta eseguito il codice C ++. Diamo un'occhiata ad alcuni di questi scenari in modo da poter evitare di usare i numeri interi non firmati in C ++ in questi casi.

Scenario n. 1: assegnare un numero negativo a una variabile intera non firmata:

I numeri interi non firmati vengono utilizzati per contenere solo i numeri interi non negativi. Tuttavia, il programmatore può comunque assegnare un numero negativo a una variabile intera non firmata. Questo numero negativo è sempre avvolto al numero più vicino all'interno dell'intervallo. Questo concetto è noto come avvolgimento di modulo. Non viene generato alcun errore in questo caso, ma il valore che ottieni non è sicuramente quello corretto. Puoi rivedere il seguente frammento di codice per capire questo:

In questo frammento di codice, abbiamo assegnato il valore "-1" a una variabile intera non firmata. Quindi, per verificare se il valore corretto è stampato sul terminale o meno, abbiamo usato l'istruzione "cout" con la variabile "var".

Dopo aver eseguito questo codice, abbiamo saputo che il valore della variabile intera non firmata è diventato "4294967295" anziché "-1", come mostrato nell'immagine seguente:

Scenario n. 2: eseguire la sottrazione di due numeri interi non firmati in cui il numero da sottrarre è maggiore del numero da sottrarre da:

Ogni volta che eseguiamo una sottrazione di due numeri interi in una situazione in cui il primo numero è più piccolo del secondo, allora riceviamo sempre un output negativo. Pertanto, in questa situazione, non dovremmo mai utilizzare i numeri interi non firmati. Il seguente frammento di codice dimostra questo:

In questo frammento di codice, abbiamo due numeri interi non firmati, "var1" e "var2", i cui valori sono rispettivamente "2" e "7". Volevamo sottrarre "2" da "7". Il risultato di questa sottrazione è "-5". Tuttavia, dovrai eseguire questo frammento di codice per capire come funziona questa sottrazione con numeri interi non firmati.

L'esecuzione di questo frammento di codice ha prodotto il risultato mostrato nella seguente immagine. Ancora una volta, sebbene non abbiamo ricevuto alcun messaggio di errore, il nostro output si è comunque rivelato errato.

Scenario n. 3: usando i numeri interi non firmati con dichiarazioni condizionali:

Ci sono alcune condizioni che eseguono quando una variabile è inferiore a un'altra. Tuttavia, se confrontiamo i numeri negativi e positivi durante l'utilizzo dei numeri interi non firmati, il risultato potrebbe essere inaspettato. Per elaborare questo, abbiamo progettato il seguente frammento di codice:

In questo frammento di codice, abbiamo due variabili intera non firmate, "var1" e "var2" i cui valori sono rispettivamente "-1" e "1". Quindi, abbiamo un'istruzione "if" che verrà eseguita se "var1

Per assistere a questo, puoi vedere l'output mostrato nella seguente immagine. Questo output afferma "var1" non è inferiore a "var2", che è logicamente e matematicamente errato:

Scenario n. 4: chiamare funzioni con numeri interi senza segno:

A volte, si definiscono tali funzioni che accettano interi non firmati come parametri. Ancora una volta, se qualcuno passa un valore negativo a questa funzione, verrà comunque chiamato ma produrrà risultati errati. Per descrivere questo, abbiamo implementato il seguente frammento di codice:

In questo frammento di codice, abbiamo una funzione denominata "DisplayNumber", che accetta un numero intero non firmato. All'interno di questa funzione, vogliamo semplicemente stampare il valore di questo numero sul terminale. Nella nostra funzione "Main ()", abbiamo chiamato questa funzione con il numero "-1".

Puoi vedere l'output di questo frammento di codice nell'immagine mostrata di seguito. Secondo questo output, il valore del numero è "4294967295" anziché "-1":

Scenario n. 5: usando i numeri interi non firmati come contatori di loop:

Nell'ultimo scenario, useremo il numero intero non firmato come contatore del loop in c++. Puoi vederlo dal seguente frammento di codice:

In questo frammento di codice, abbiamo definito un semplice ciclo "per" il cui iteratore è un numero intero non firmato e abbiamo decrementato questo numero intero non firmato in ogni iterazione. Ci siamo bloccati in un ciclo infinito quando abbiamo eseguito questo codice, come puoi vedere dall'output mostrato di seguito. Ciò è accaduto solo perché nell'ultima iterazione in cui il valore dell'iteratore è stato decrementato in "-1", invece di rompere il ciclo, questo iteratore è stato avvolto al numero intero non firmato più vicino il cui valore era maggiore di "5". Ciò ha continuato ad accadere in ogni iterazione, motivo per cui abbiamo questo tipo di output.

Conclusione:

In questo articolo, volevamo parlare dei vari aspetti dell'uso degli interi non firmati in C ++ in Ubuntu 20.04. Innanzitutto, abbiamo condiviso le dimensioni dei numeri interi non firmati in C ++ con te, seguiti dalla loro dichiarazione. Dopodiché, abbiamo spiegato i diversi scenari in cui l'uso degli interi non firmati dovrebbe essere rigorosamente evitato evidenziando i problemi che possono causare. Pertanto, dopo aver esaminato questo articolo, differencerai facilmente tra le situazioni in cui i numeri interi non firmati dovrebbero e non dovrebbero essere usati. Speriamo che tu abbia trovato questo articolo utile e per favore controlla il suggerimento di Linux per articoli più informativi.