Wikia

D Programming

Osservati speciali Ultime modifiche

Conversioni

Indice

Introduzione Modifica

Questo piccolo capitolo è dedicato a conversioni particolari delle variabili, dove non basta un semplice cast, ma serve ben altro. Prima o poi sorgerà la domanda: "Come faccio a convertire un int in una stringa e viceversa??"

Questo piccolo capitolo si occupa proprio di questo.

I moduli necessari Modifica

Sono neccessari due soli moduli:

  • std.conv: questo modulo permette le conversioni da un tipo stringa a un tipo numerico (int, float, uint, double...), ma anche una semplice conversione da un tipo numerico ad un altro (da int a double, o in un tipo unsigned...)
  • std.string: questo tipo l'avevamo usato nei capitoli precedenti per lavorare con le stringhe, ma possiene una funzione toString(), che permette di convertire un tipo numerico in una stringa, esiste una versione di questa funzione che chiede la radice del numero (ottale, decimale, esadecimale, binaria...ma anche base tre, quattro, sette....)

Da stringa a tipo numerico Modifica

Conversioni da numeri rappresentati sotto forma di stringa nella loro rappresentazione sotto forma di tipo numerico.

import std.stdio;
import std.conv;
 
int main(string[] args)
{
  string strNum = "67";  //Una stringa col valore "67"
  int num = std.conv.toInt(strNum);  //Converto stringa -> numero
 
  writefln("%d", num); 
 
  return 0;
}
 Output:
 67

Da tipo numerico a stringa Modifica

Un esempio pratico su come convertire un tipo numerico in stringa, col modulo std.string:

Conversioni in base 10 Modifica

import std.stdio;
import std.string;
 
int main(string[] args)
{
  int num = 67;  //Numero di tipo int = 67
  string strNum = std.string.toString(num);  //Converto numero -> stringa
 
  writefln("%s", strNum); 
 
  return 0;
}
 Output:
 67

Conversioni in basi diverse da 10 Modifica

E' possibile convertire un numero in una base diversa dal 10, ad esempio in binario, esadecimale, ottale, ma anche altre basi. Ecco un esempio pratico:

import std.stdio;
import std.string;
 
int main(string[] args)
{
  long num = 67;  //Un tipo long con valore 67.
 
  /* CONVERSIONE NUMERO -> RAPPRESENTAZIONE BINARIA
   * La base deve essere passata come numero intero senza segno
   * per farlo è sufficiente far seguire la base da una 'u' (unsigned)
   * il numero da convertire deve essere di tipo long
   */
 
  //Conversioni in varie basi
  string binNum = std.string.toString(num, 2u);   //BINARIO
  string hexNum = std.string.toString(num, 16u);  //ESADECIMALE
  string octNum = std.string.toString(num, 8u);   //OTTALE
  string fiveNum = std.string.toString(num, 5u);  //BASE 5
 
  writefln("BIN: %s", binNum); 	
  writefln("HEX: %s", hexNum); 
  writefln("OCT: %s", octNum); 
  writefln("FIVE: %s", fiveNum); 
  return 0;
}
 Output:
 BIN: 1000011
 HEX: 43
 OCT: 103
 FIVE: 232

Pagine su D Programming

Crea una pagina
25pagine in
questa wiki
Advertisement | Your ad here

Latest Photos

Carica un'immagine
10immagini in questa wiki
Vedi altre >

Attività recenti della Wiki

Vedi >

Nella rete di Wikia

Wiki a caso