Situatie
Fiecare sistem de numeratie are un numar de cifre si/sau litere corespunzator bazei
acestuia. Astfel, sistemul zecimal contine cifre de la 0 la 9 (baza 10), sistemul hexazecimal
contine cifre de la 0 la 9 si litere de A la F (baza 16), sistemul octal contine cifre de 0 la
7 (baza 8) iar sistemul binar contine cifrele 0 si 1 (baza 2). Pentru a face distinctie ıntre
numerele din diferite baze de numeratie exista mai multe metode de notare:
a) La sfarsitul numarului se adauga o litera corespunzatoare bazei de numeratie:
• B – binar (ex. 10011101B)
• Q – octal (ex. 23701Q)
• D – zecimal (ex. 5429D)
• H – hexazecimal (ex. FD37BH)
b) La sfarsitul numarului se adauga, ın paranteze, baza careia ıi apartine numarul:
• (2) – binar (ex. 10011011(2))
• (8) – octal (ex. 24673(8))
• (10) – zecimal (ex. 9546(10)
• (16) – hexazecimal (ex. 34A4D(16))
c) La sfarsitul numarului se adauga ca si indice, ın paranteze, baza careia ıi apartine
numarul:
• Numar(2) – binar (ex. 101101(2))
• Numar(8) – octal (ex. 5572(8))
• Numar(10) – zecimal (ex. 9334(10))
• Numar(16) – hexazecimal (ex. 53FD1(16))
Observatie:
Deoarece baza 10 este considerata o baza implicita, numerele din aceasta baza nu trebuie
sa fie urmate de simbolul corespunzator bazei.
Solutie
#include<stdio.h>
void main()
{
int n,m,p,y=0,c;
printf(“Nr in baza 10 este: “);
scanf(“%d”,&n);
printf(“Baza in care se converteste: “);
scanf(“%d”,&p);
while(n!=0)
{
c=n%p;
y=y*10+c;
n=n/p;
}
printf(“Nr. in baza %d este: %d”,p,y);
getchar();
int var;
scanf(“&d”, var);
}
Leave A Comment?