CSharp - Incrementar número hexadecimal

Written by lopezatienza on 29 Octubre 2008 – 16:47 -

Esta función te devuelve null si hay algún fallo.Si se le envía un String que está formado por valores numéricos devolverá 1 número mas de éste, incluído si es una letra de la A a la F, lo cual devolverá el valor siguiente.

       

public string IncrementarHexadecimal(string Numero)

        {

            try

            {

                int aux = Numero.Length;

                int i = 1;

                string Numero2 = "";

 

                while (Numero.Substring(aux - i, 1) == "F")

                {

                    Numero2 = "0" + Numero2;

                    i++;

                }

 

                switch (Numero.Substring(aux - i, 1))

                {

                    case "9":

                        Numero2 = "A" + Numero2;

                        break;

                    case "A":

                        Numero2 = "B" + Numero2;

                        break;

                    case "B":

                        Numero2 = "C" + Numero2;

                        break;

                    case "C":

                        Numero2 = "D" + Numero2;

                        break;

                    case "D":

                        Numero2 = "E" + Numero2;

                        break;

                    case "E":

                        Numero2 = "F" + Numero2;

                        break;

                    default:

                        Numero2 = (Convert.ToInt32(Numero.Substring(aux - i, 1)) + 1) + Numero2;

                        break;

                }

 

                Numero2 = Numero.Substring(0, aux - i) + Numero2;

                return Numero2;

            }

            catch { return null; }

        }

Ej1:

String cadena = "0000A";
String cadena2 = Incrementar(cadena));

cadena2 sería "0000B"

E2j:

String cadena = "AABF";
String cadena2 = Incrementar(cadena));

cadena2 sería "AAC0"

Si el número que se pasa es todo Fs: "FFFF", la continuación será: "0000"


Tags: ,
Posted in CSharp |

Leave a Comment

RSS