Contact și feedback

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.

Shortcuturi

Folosește următoarele shortcuturi pentru a naviga mai ușor pe platformă.

Generale

Meniu shortcuturi?
Căutare probleme sau utilizatori/
Navigare printre rezultatele căutării↑, ↓
Meniu de contact și feedbackCTRL + Shift + F
Ieșire din meniuriEsc

Editor probleme

Setări editorCTRL + Shift + S
Schimbare stil editorCTRL + Shift + E
Șabloane de codCTRL + Shift + 1/2/3
Golire editorCTRL + Shift + 4

Transformarea unui număr din baza 10 în baza 2 în C++

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.

Ce este o bază de numerație?

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.

Despre baza 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, ….

Cum transformăm un număr din baza 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:

https://i.ibb.co/qxp9LrL/image.png

Implementare C++

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

Bibliografie și alte resurse

Obține medalia mult dorită. Devino As la olimpiadă.

Curs complet de olimpiadă, pregătit de olimpici de la Oxford și TU Delft.

Cuprinsul lecției

Se încarcă…

Citește și

Aplicații cu ciurul lui Eratostene în C++: suma divizorilor, numărul divizorilorBordarea unei matrice în C++De ce cer unele probleme răspunsul modulo 666013 sau modulo 1.000.000.007?Al N-lea termen Fibonacci în C++Numărul aranjamentelor în C++ (formula aranjamentelor)Numărul minim de peroane pentru o gară în C++Aria unui triunghi folosind coordonatele acestora în C++Instrucțiunea do while (structuri repetitive)Matrice pătratice în C++. Diagonala principală și secundarăFuncții în C++. Ce sunt subprogrameleCitește un șir de caractere cu spații în C++Oglinditul unui număr în C++Ce este o variabilă unsigned în C++?Cel mai puțin semnificativ bit în C++Aria și circumferința unui cerc în C++Algoritm recursiv pentru căutare binară (clasa a X-a)Numărul de apariții al unui număr într-un vector în C++Cum să calculezi instant 2 la puterea N în C++Inversarea unui vector în C++Suma divizorilor numerelor de la 1 la N (Folosind ciurul lui Eratostene)Transformarea unui număr din baza 2 în baza 10 în C++Șirul lui Fibonacci în C++Cifra maximă a unui număr recursiv în C++Suma divizorilor unui număr în C++Structuri repetitive (while, do while, for, etc)Suma numerelor naturale dintr-un interval dat în C++Verificarea unui an bisect în C++Recursivitate în C++Indicatorul lui Euler în C++Șiruri de caractere în C++. Tot ce trebuie să știiCopiuțe: Cifrele unui numărMaximul și minimul a trei valori în C++Matrice Fibonacci - al n-lea termen Fibonacci în timp logaritmicCalculul combinărilor de n luate câte k (nCk) în C++Maximul și minimul a n valori în C++Ce înseamnă endl în C++?Valoarea absolută (modulul) unui număr în C++Ridicarea la putere în timp logaritmic în C++. Exponențiere rapidăCMMDC recursiv a două numere naturale în C++Verifică dacă un caracter este cifră în C++Suma 1 + 2 + 3 + ... + N în C++Maximul și minimul unui vector în C++Tipul struct în C++. Ce sunt structurile de date neomogeneInstrucțiunea continue (structuri repetitive)Comentarii în C++Instrucțiunea de decizie în C++: if, else, switch, caseNumărul de cifre ale factorialului unui numărCiurul lui Eratostene în C++Verifică dacă un număr este par sau impar fără modulo în C++Afișarea elementelor unui vector recursiv în C++Combinatorică în C++: permutări, aranjamente, combinări și alteleNumărul permutărilor în C++ (formula permutărilor)Instrucțiunea while (structuri repetitive)Funcții predefinite în C++ (matematice, șiruri de caractere)Verifică dacă un număr aparține șirului Fibonacci în C++Factorialul unui număr în C++Interclasarea a doi vectori în C++Numărul de divizori primi ai unui număr în C++Cel mai frecvent element dintr-un șir în C++Instrucțiunea for (structuri repetitive)Numărul de divizori al numerelor de la 1 la N (Folosind ciurul lui Eratostene)Cifra de control a unui numărNumere triunghiulare. Verificarea unui număr triunghiularCel mai mic număr cu suma cifrelor N în C++Transformarea unei litere mari în literă mică în C++Vectori de frecvență (de apariții) în C++Ce înseamnă variabilă globală și locală în C++?Transformarea unui număr din baza 10 în baza 2 în C++Numărul combinărilor în C++ (formula combinărilor)Aflarea sumei primelor N sume GaussMediana unui șir de valori în C++Codul ASCII (tabel complet)Cel mai semnificativ bit în C++Verificare dacă un număr este palindrom în C++Radicalul unui număr în C++ (rădăcina pătrată)Transformarea unei litere mici în literă mare în C++Complexitatea unui algoritm (timp și spațiu) în C++Afișarea divizorilor primi ai unui număr în C++Numărul de divizori al unui număr în C++Sortare crescătoare recursivă în C++ - Merge sort și Bubble sortAflă secolul unui an citit de la tastatură în C++Generarea șirului Fibonacci generalizat în C++Verifică dacă o literă este mică sau mare în C++Materia pentru olimpiada de informatică - tot ce trebuie să știiVectorii în C++: citire și afișareMaximul și minimul a două valori în C++Tutorial instalare CodeBlocks (ușor) - Introducere în informatică C++Cea mai lungă secvență de elemente crescătoare în C++Verifică dacă un caracter este literă în C++Rădăcina cubică a unui număr în C++ (cube root)Al N-lea termen dintr-o progresie aritmeticăVerificare dacă șir de caractere este palindrom în C++Pointer în C++. Variabile de tipul char * (char steluță)Oglinditul recursiv al unui număr în C++Vectorii în C++: declarare și parcurgereInstrucțiunea break (structuri repetitive)Divide et Impera (metodă de programare C++)Verifică dacă trei puncte sunt coliniare C++Matrice în C++. Declararea și parcurgerea tablourilor bidimensionaleDo while vs while în C++ - Care e diferența?Căutare binară în C++Cum să citești și să afișezi în fișiere în C++Inversarea unui șir de caractere în C++Al N-lea termen dintr-o progresie geometricăCel mai mare divizor comun (CMMDC) a două numere în C++Tipuri de date în C++: numere întregi, reale, caractere și alteleVerifică dacă un bit de pe o anumită poziție este 1 sau 0 în C++Verifică dacă un număr dat este o putere de 2 în C++Operații cu numere mari în C++ - Toate funcțiile explicateVerifică dacă o literă este vocală în C++Prima cifră a unui număr în C++Indicatorul lui Euler al numerelor de la 1 la N (Folosind ciurul lui Eratostene)Interschimbarea a două variabile în C++ (3 metode)Cel mai mic/mare divizor prim al numerelor de la 1 la N (Folosind ciurul lui Eratostene)Câte numere naturale sunt într-un interval dat? (C++)Cifrele unui număr. Prelucrarea cifrelor unui număr în C++CMMMC a două numere în C++ (cel mai mic multiplu comun)Distanța dintre două puncte în C++Ce este o funcție void în C++?Cifra maximă și minimă a unui număr în C++Cum să afișezi partea întreagă a unui număr real în C++Verificare număr prim în C++ (Clasa a IX-a)Suma elementelor unui vector recursiv în C++Citirea și afișarea matricelor în C++

© Drepturi de autor

Echipa InfoAs își rezervă drepturile de autor pentru conținutul acestei pagini. Copierea conținutului fără acordul scris expres al InfoAs reprezintă o încălcare a Legii 8/1996 și va fi tratată ca atare.

Trimite lecția

Toată lecția

Doar videoclipul pe YouTube

Informatica devine ușoară cu InfoAs

Intră în cont