Risipa de key_press | Programare

Programare .Net | Tehnici de programare | Tutoriale | Lectii si exemple

Risipa de key_press | Programare - Programare .Net | Tehnici de programare | Tutoriale | Lectii si exemple

Conversia unui numar natural din baza 10 în baza 16

Să se transforme un numar natural din baza 10 în baza 16.

Analiza Programului

Un sistem de numeratie este alcatuit dintr-o multime finita de simboluri dsi un set de reguli de reprezentare a numerelor cu ajutorul simbolurilor respective. Numarul de simboluri reprezinta baza sistemului de numeratie.
De exemplu, in sistemul zecimal se utilizeaza 10 simboluri: 0,1,2,3,4,5,6,7,8,9.
In sistemul hexazecimal se utilizeaza 16 simboluri: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F. Semnificatia zecimala a simbolurilo A,B,C,D,E,F este, in ordine, 10,11,12,13,14,15.

Pentru a trece un număr din baza 10 în baza 16 se procedează astfel :
se împarte succesiv la 16 numărul (apoi câturile) si se reţin resturile. Dacă acestea sunt 10,11,12,13,14,15 se înlocuiesc cu A,B,C,D,E,F.
Resturile obţinute formează cifrele numărului scris în baza 16 (de la ultimul rest la primul).

Exemplu : 2156(10)=…(16)*2156 = 134 x 16 +12 => 134 = 8 x 16 + 6 => 8 = 0 x 16 + 8 => X = 86C(16).

Rezolvarea in C#

using System;

namespace _26
{
    class Program
    {
        static void Main(string[] args)
        {
            int r = 1, digits = 0;
            char[] hexCharArray = new char[20]; 

            Console.WriteLine("Introduceti un numar in baza 10");
            int _base10Number = int.Parse(Console.ReadLine());

            while (_base10Number != 0)
            {
                r = _base10Number % 16;
                if (r <= 9)
                    //codurile ASCII intre 048 si 057 reprezenta cifrele de la 0 la 9
                    hexCharArray[digits] = (char)(r + 48);
                else
                    //Codurile ASCII intre 065 si 070  reprezinta literele de la 'A' la 'F'
                    hexCharArray[digits] = (char)(r + 55);
                _base10Number = _base10Number / 16;
                digits++;
            }

            Console.WriteLine("Reprezentarea in baza 16 a numarului:", _base10Number);
            
            for (int i = digits - 1; i >= 0; i--)
                Console.Write(hexCharArray[i]);
            
            Console.ReadLine();
        }
    }
}
Category: Uncategorized

Your email address will not be published. Required fields are marked *

*