[C#] Convertendo números para string [Binário, Octal, Hexadecimal]

Para muitos essa conversão é uma dor de cabeça, portanto mostro, hoje, como é simples a conversão de números para string no C#.

Esse código pode ser adaptado para utilizar qualquer tipo de base.

using System;
namespace ConsoleApplication1
{
    class Program
    {
        static void Main()
        {
            Console.WriteLine("DATEK Tecnologia");
            Console.WriteLine("Exemplo de conversão de número para string");
            Console.WriteLine();
            Console.WriteLine("[Binário]");
            Console.WriteLine();
            Console.WriteLine(Binario.ToBinary((byte)255));
            Console.WriteLine(Binario.ToBinary((Int16)255));
            Console.WriteLine(Binario.ToBinary((Int32)255));
            Console.WriteLine(Binario.ToBinary((Int64)255));
            Console.WriteLine();
            Console.WriteLine("[Hexadecimal]");
            Console.WriteLine();
            Console.WriteLine(Hexadecimal.ToHexadecimal((byte)255));
            Console.WriteLine(Hexadecimal.ToHexadecimal((Int16)255));
            Console.WriteLine(Hexadecimal.ToHexadecimal((Int32)255));
            Console.WriteLine(Hexadecimal.ToHexadecimal((Int64)255));
            Console.WriteLine();
            Console.WriteLine("[Octal]");
            Console.WriteLine();
            Console.WriteLine(Octal.ToOctal((byte)255));
            Console.WriteLine(Octal.ToOctal((Int16)255));
            Console.WriteLine(Octal.ToOctal((Int32)255));
            Console.WriteLine(Octal.ToOctal((Int64)255));
            Console.ReadKey();
        }
    }
    class Binario
    {
        static public string ToBinary(byte valor)
        {
            return (ToBinary(valor, sizeof(byte) * 8));
        }
        static public string ToBinary(Int16 valor)
        {
            return (ToBinary(valor, sizeof(Int16) * 8));
        }
        static public string ToBinary(Int32 valor)
        {
            return (ToBinary(valor, sizeof(Int32) * 8));
        }
        static public string ToBinary(Int64 valor)
        {
            return (ToBinary(valor, sizeof(Int64) * 8));
        }
        static private string ToBinary(Int64 valor, int tamanho)
        {
            String b = string.Empty;
            for (int a = 0; a < tamanho; a++)
            {
                b = (valor % 2) + b;
                valor /= 2;
            }
            return (b);
        }
    }
    class Hexadecimal
    {
        static public string ToHexadecimal(byte valor)
        {
            return (ToHexadecimal(valor, sizeof(byte) * 2));
        }
        static public string ToHexadecimal(Int16 valor)
        {
            return (ToHexadecimal(valor, sizeof(Int16) * 2));
        }
        static public string ToHexadecimal(Int32 valor)
        {
            return (ToHexadecimal(valor, sizeof(Int32) * 2));
        }
        static public string ToHexadecimal(Int64 valor)
        {
            return (ToHexadecimal(valor, sizeof(Int64) * 2));
        }
        static private string ToHexadecimal(Int64 valor, int tamanho)
        {
            String b = string.Empty;
            for (int a = 0; a < tamanho; a++)
            {
                b = ((char)((valor % 16) + ((valor % 16) > 9 ? 'A' - 10 : '0'))) + b;
                valor /= 16;
            }
            return (b);
        }
    }
    class Octal
    {
        static public string ToOctal(byte valor)
        {
            return (ToOctal(valor, sizeof(byte) * 3));
        }
        static public string ToOctal(Int16 valor)
        {
            return (ToOctal(valor, sizeof(Int16) * 3));
        }
        static public string ToOctal(Int32 valor)
        {
            return (ToOctal(valor, sizeof(Int32) * 3));
        }
        static public string ToOctal(Int64 valor)
        {
            return (ToOctal(valor, sizeof(Int64) * 3));
        }
        static private string ToOctal(Int64 valor, int tamanho)
        {
            String b = string.Empty;
            for (int a = 0; a < tamanho; a++)
            {
                b = (valor % 8) + b;
                valor /= 8;
            }
            return (b);
        }
    }
}

O Resultado desse código é esse:

prnt_scrn
Print Screen

Comentem mais esse código…


Obrigado e até o próximo post.

DATEK Tecnologia Eletrônica
[C#] Convertendo números para string [Binário, Octal, Hexadecimal]
Tags:                 

Deixe uma resposta

%d blogueiros gostam disto: