Conversione hex->int elegante
Lavoro ad un progetto scritto in C# con un programmatore vero (non un elettronico tuttofare come lo sono io). Ed è un piacere, lui trasuda esperienza e io cerco di assorbire (che detta così fa un po' schifo
).
Cosa ho imparato oggi? Come converto una singola cifra esadecimale contenuta in una stringa (quindi un carattere) nel corrispondente integer?
Ci sono sicuramente diverse soluzioni e non avrei avuto difficoltà a trovarne una che contenesse l'instanziazione di un char, un paio di cast e l'uso di qualche classe di .NET.
Ma appunto, questo sono io.
Poi c'è il genio:
Funziona perché la stringa viene da un modulo di campionamento dati che usa sempre le lettere minuscole per l'esadecimale. Ma il problema sarebbe facilmente risolvibile chiamando il metodo ToLower della classe char.
Trovo che sia una soluzione molto elegante, di leggibilità immediata e applicabile anche ad altre conversioni.
Boiler
Cosa ho imparato oggi? Come converto una singola cifra esadecimale contenuta in una stringa (quindi un carattere) nel corrispondente integer?
Ci sono sicuramente diverse soluzioni e non avrei avuto difficoltà a trovarne una che contenesse l'instanziazione di un char, un paio di cast e l'uso di qualche classe di .NET.
Ma appunto, questo sono io.
Poi c'è il genio:
- Codice: Seleziona tutto
int rrFlag = "0123456789abcdef".IndexOf(inputString[ir]);
Funziona perché la stringa viene da un modulo di campionamento dati che usa sempre le lettere minuscole per l'esadecimale. Ma il problema sarebbe facilmente risolvibile chiamando il metodo ToLower della classe char.
Trovo che sia una soluzione molto elegante, di leggibilità immediata e applicabile anche ad altre conversioni.
Boiler
, non bastava int.Parse o ancora meglio int.TryParse? 