Nu obții 100 de puncte sau ai nelămuriri în privința problemelor? Scrie-mi pe Instagram.
Ai găsit o greșeală, vrei să raportezi un utilizator sau vrei să comunici altceva? Folosește formularul de contact.
Vrei să ne transmiți o părere despre platformă? Folosește formularul de feedback.
Folosește următoarele shortcuturi pentru a naviga mai ușor pe platformă.
Meniu shortcuturi | ? |
Căutare probleme sau utilizatori | / |
Navigare printre rezultatele căutării | ↑, ↓ |
Meniu de contact și feedback | CTRL + Shift + F |
Ieșire din meniuri | Esc |
Setări editor | CTRL + Shift + S |
Schimbare stil editor | CTRL + Shift + E |
Șabloane de cod | CTRL + Shift + 1/2/3 |
Golire editor | CTRL + Shift + 4 |
Dându-se un număr natural n
în baza 10
, vrem să transformăm numărul dat în baza 2
.
Exemplu: Pentru n = 14
, numărul în baza 2
este 1110
.
Pentru a înțelege cum se convertește un număr din baza 10
în baza 2
, trebuie să înțelegem ce este o bază.
O bază de numerație reprezintă numărul de semne distincte necesare scrierii unui număr.
Mai exact, pentru a scrie un număr într-o bază b
, ne vom folosi de b
simboluri. Pentru baza pe care o folosim noi zilnic, baza 10
, avem cele 10
cifre: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
.
Pentru a număra într-o bază de numerație, luăm cifrele pe rând, iar când ajungem la final, adunăm 1
la următoarea cifră. Pentru baza 10
, avem primele 10
numere 0, 1, 2, …, 8, 9
, după care cifra revine la 0
și adunăm 1
la următoarea cifră: 10
. Procesul acesta continuă la infinit.
2
Când numărăm în baza 2
, având doar cifrele 0
și 1
, vom începe cu acestea, după care continuăm să numărăm astfel: 0, 1, 10, 11, 100, 101, 110, 111, …
.
10
în baza 2
?Având numărul nostru n
în baza 10
, pentru a-l transforma în baza 2
, îl vom împărți pe n
repetat la 2
, luând resturile sale pe rând. Iată un exemplu, pentru n = 174
:
Cunoscând regulile menționate mai devreme, implementarea în C++ este mai jos. Pentru a construi numărul, ne vom folosi de o variabilă p
, care are rolul de a insera o cifră la finalul numărului. Puteți citi articolul despre cifrele unui număr pentru a înțelege mai bine acest aspect.
#include <iostream>
using namespace std;
int main()
{
//Declarăm și citim numărul în baza 10
int n;
cin >> n;
//Calculăm și afișăm numărul în baza 2
int raspuns = 0, p = 1;
while(n > 0) {
int restCurent = n % 2; //Cifra curentă, care este defapt restul împărțirii la 2
raspuns += p * restCurent; //Adăugăm cifra curentă la raspuns
p = p * 10; //Formăm puterea următoare
n = n / 2; //Îl înmulțim pe n la 2 pentru a găsi următoarele cifre
}
cout << raspuns;
return 0;
}