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(); } } }