Guida a PHP: tipi numerici interi

Dopo una lunga pausa riprendiamo in questo articolo ad approfondire la conoscenza di PHP, occupandoci nello specifico della rappresentazione e della gestione dei valori numerici: per cominciare conviene ricordare che qualsiasi valore numerico in PHP è classificato come intero o reale.

Numeri interi

I numeri interi sono contraddistinti da:

  • segno positivo o negativo;
  • base di numerazione binaria (2), ottale (8), decimale (10) o esadecimale (base 16);
  • modulo o valore assoluto;

Ogni qualvolta inserite nel codice PHP un valore numerico fornite (implicitamente o esplicitamente) queste tre informazioni fondamentali: segno e base di numerazione non sono obbligatori (in caso di omissione PHP assume segno positivo e base di numerazione decimale), mentre il valore assoluto ovviamente lo è; in generale un numero intero in PHP presenta il seguente formato:

[segno][base][modulo]

<?php
$x = 23; // Assegna il numero intero positivo 23 alla variabile x - si noti l'omissione del segno positivo e della base 10
$y = -23; // Assegna il numero intero negativo -23 alla variabile y
?>

Base di numerazione. Per specificare una base di numerazione differente da quella decimale occorre anteporre al modulo una particolare sequenza di caratteri, formata dal numero zero seguito eventualmente da un carattere alfabetico (b per binario, x per esadecimale):

  • base 2 (binario): 0b
  • base 8 (ottale): 0
  • base 16 (esadecimale): 0x
<?php
$x = 0b110; // Assegna alla variabile $x il valore binario 110 (equivalente al 5 in base 10)
$y = 045; // Assegna alla variabile $y il valore ottale 45 (equivalente al 37 in base 10)
$z = 0xa2f; // Assegna alla variabile $x il valore esadecimale a2f (equivalente al 2607 in base 10)
?>

Si raccomanda dunque di prestare attenzione all’uso della cifra zero come notazione prefissa ad un valore numerico per indicarne la base: qualsiasi valore decimale inseriate esso deve iniziare con una cifra diversa da 0, pena l’interpretazione come valore esadecimale.

Stampa dei valori. Vale la pena notare come l’eventuale operazione di stampa del valore della variabile (echo) mostri sempre il numero intero in base decimale, anche se la base di partenza è differente: per stampare un valore numerico qualsiasi (espresso in una base a piacere) in una base differente, occorre utilizzare delle funzioni messe appositamente a disposizione da PHP. I nomi delle funzioni sono facili da ricordare essendo del tipo (valore) ove e sono:

  • bin (base 2);
  • oct (base 8);
  • dec (base 10);
  • hex (base 16).

Vediamo un esempio d’utilizzo:

<?php
$x = 673;
echo dechex($x); // Stampa il valore di $x in formato esadecimale
?>

Concludo la discussione sui numeri interi con un’osservazione: come si comporta PHP se inserisco un valore in una base a piacere utilizzando cifre non valide (ad esempio l’8 ed il 9 in base 8)? Trattandosi di un linguaggio interpretato, l’errore viene scovato e sollevato durante l’esecuzione: semplicemente PHP, non riconoscendo un valore numerico valido per la base indicata, cerca di interpretare la sequenza di caratteri come una stringa, sollevando un errore dovuto al fatto che i valori di tipo stringa devono essere racchiusi tra apici singoli o doppi (vedremo le stringhe in dettaglio in un post successivo).

Nel prossimo post vedremo invece come vengono gestiti e trattati i numeri reali.

Annunci

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...