De bază (aritmetică)

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

În matematică , baza unui sistem de numerotare pozițională este numărul de cifre distincte, inclusiv cea pentru 0 , pe care sistemul o folosește pentru a reprezenta numerele . Reprezentarea de bază 10 este scrierea numerică obișnuită cu care suntem obișnuiți.

Definiție

Un număr natural n este reprezentat în baza b prin asocierea unei secvențe finite de numere naturale fiecare ales între 0 și b-1 în așa fel încât egalitatea să dețină:

Se poate arăta că această asociere definește o corespondență unu-la-unu între setul de numere naturale și setul de secvențe finite compuse din numere alese între 0 și b-1 .

Pentru a indica faptul că un număr este reprezentat într-o anumită bază, acesta poate fi indicat în indicele său, de exemplu: 110 101 2 = 53 10 . Deoarece într-o bază b , numărul b este întotdeauna scris ca 10 (deoarece b = 1 · b 1 + 0 · b 0 ), poate fi recomandabil să utilizați „9 + 1” sau „în reprezentarea bazei numerice. Un „în loc de un„ 10 ” auto-referențial , al cărui conținut, având în vedere contextul, ar putea fi non-unic și, prin urmare, paradoxal .

Într-o bază dată b , numerele raționale care pot fi reprezentate cu un număr finit de cifre după virgulă sunt toate și numai cele care, exprimate ca o fracție ireductibilă m / n , nu au factori primi ai lui n care nu sunt și factori primi din b . De exemplu, factorii primi ai lui 10 sunt 2 și 5, deci fracțiile care generează numere periodice în baza 10 sunt acelea care (reduse în formă normală) la numitor au factori primi diferiți de 2 și 5. Numerele iraționale nu sunt exprimabile cu un număr finit de cifre în orice bază.

Simboluri cifrate

Pentru baze mai mici sau egale cu 10, cifrele comune 0, 1, 2, 3, 4, 5, 6, 7, 8 și 9 sunt utilizate în general.
Pentru baze mai mari de 10, trebuie introduse alte simboluri, de obicei litere. În sistemul hexazecimal sunt utilizate cifrele 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E și F. Deci, de exemplu, F3A0 în baza 16 este echivalent cu 62368 în baza 10. Un sistem de numerotare de bază 2B sau 2B + 1 poate utiliza, de asemenea, cifre B, dintre care unele sunt marcate și care se consideră negative, adică N , ..., 2 , 1 , 0, 1, 2 ,. .., N. În acest caz vorbim despre un sistem echilibrat ; vezi de exemplu sistemul ternar echilibrat .

Exemple de conversie de bază

De la altă bază decât 10 la baza 10

Pentru a scrie un număr de bază diferit de 10 într-un număr de bază 10, trebuie mai întâi să-l scrieți sub formă polinomială. Iată un exemplu mai ușor de înțeles decât o explicație abstractă a cazului general.

Pentru a transforma, de exemplu, numărul (1010) 2 de la baza 2 la baza 10:

  • scriem numărul în formă polinomială: 1 × 2 3 + 0 × 2 2 + 1 × 2 + 0 × 2 0 ;
  • efectuăm operațiunile indicate: 8 + 2 + 0;
  • obținem 10 în baza 10. deci (1010) 2 = (10) 10 .

De la baza 10 la o altă bază decât 10

Pentru a transforma un număr din baza 10 din scrierea corespunzătoare într-o bază diferită de 10, operăm cu divizii succesive și, în special, trebuie să ținem cont de coeficienții (q) și resturile (r) din fiecare diviziune. De asemenea, în acest caz raportăm un exemplu.

Vrem să transformăm numărul 428, aparținând sistemului zecimal, în numărul corespunzător din baza 6:

  • împărțim 428 la 6: obținem q = 71, r = 2;
  • împărțim coeficientul 71 la 6: obținem q 1 = 11, r 1 = 5;
  • împărțim coeficientul 11 ​​la 6: obținem q 2 = 1, r 2 = 5;
  • împărțim coeficientul 1 la 6: obținem q 3 = 0, r 3 = 1.

Procedura este terminată, deoarece q = 0. Scriind resturile obținute de la ultimul la primul obținem numărul (1552) 6 care este numărul pe care îl căutăm.

Implementarea algoritmului

Mai jos este o implementare a algoritmului pentru conversia de bază a unui număr.

 // Convertiți valoarea „din_valor”, scrisă în baza „din_bază”, în bază „din_bază”, și salvați rezultatul în „la_valoră”
bool tobase ( char * from_value , char * to_value , int from_base , int to_base )
{
    valoare dublă = 0 ;
    int valoare_size ;
    for ( value_size = 0 ; from_value [ value_size ] ! = '\ 0' ; ++ value_size );
    for ( int pos = 0 , exp = value_size -1 ; exp > = 0 ; ++ pos , - exp )
    {
        if ( ! ( from_value [ pos ] - '0' )) continue ;
        if ( from_value [ pos ] > = '0' && from_value [ pos ] <= from_base -1 + '0' ) value + = pow ( from_base , exp ) * ( from_value [ pos ] - '0' );
        else if ( from_value [ pos ] > = 'A' && from_value [ pos ] <= from_base -11 + 'A' ) value + = pow ( from_base , exp ) * ( from_value [ pos ] - 'A' + 10 );
        else if ( from_value [ pos ] > = 'a' && from_value [ pos ] <= from_base -11 + 'a' ) value + = pow ( from_base , exp ) * ( from_value [ pos ] - 'a' + 10 );
        altfel returnează fals ; // Eroare în timpul conversiei
    }
    cifre int = 0 ;
    for ( int i = 0 ; i < MAX_LENGTH ; ++ i ) to_value [ i ] = '0' ;
    while ( valoare > 0 )
    {
        int fact = valoare , exp ;
        for ( exp = 0 ; fact / to_base > 0 ; ++ exp )
            fact / = to_base ;
        if ( ! cifre ) cifre = exp ;
        valoare - = pow ( to_base , exp ) * fapt ;
        if ( fact > 9 ) to_value [ cifre - exp ] = 'A' + fapt -10 ;
        else to_value [ cifre - exp ] = '0' + fapt ;
    }
    to_value [ cifre + 1 ] = '\ 0' ;
    întoarce-te adevărat ; // Conversie reușită
}

Generalizări ale conceptului de bază

Bazele utilizate în mod obișnuit sunt toate numerele naturale, dar pot fi construite și sisteme de numerotare bazate pe baze negative , care nu sunt întregi (cum ar fi baza aurie ) și complexe .

Elemente conexe

linkuri externe

  • Convertor între baze , la tinytools.nu . Adus la 17 aprilie 2012 (arhivat din original la 26 aprilie 2012) .
  • (EN) Eric W. Weisstein, Base , în MathWorld Wolfram Research. Editați pe Wikidata
Matematica Portalul de matematică : accesați intrările Wikipedia care se ocupă de matematică