Fondamenti aritmetici e logici dei computer. Fondamenti aritmetici e logici del sistema numerico informatico Sistema numerico binario

Fondamenti aritmetici e logici dei computer. Fondamenti aritmetici e logici del sistema numerico informatico Sistema numerico binario


Attualmente, nella vita di tutti i giorni, per codificare le informazioni numeriche, viene utilizzato un sistema di numerazione decimale a base 10, che utilizza 10 elementi di notazione: numeri 0,1,2,...8,9. La prima cifra (minore) indica il numero di unità, la seconda le decine, la terza le centinaia, ecc.; in altre parole, in ogni cifra successiva il peso del coefficiente della cifra aumenta di 10 volte.
I dispositivi di elaborazione delle informazioni digitali utilizzano un sistema di numeri binari in base 2 che utilizza due elementi di notazione: 0 e 1.
Ad esempio, il numero binario 101011 equivale al numero decimale 43:
Nei dispositivi digitali, termini speciali vengono utilizzati per denotare unità di informazione di varie dimensioni: bit, byte, kilobyte, megabyte, ecc. Un bit o una cifra binaria determina il valore di un carattere in un numero binario. Ad esempio, il numero binario 101 ha tre bit o tre cifre. La cifra a destra, con il peso minore, è chiamata junior, mentre la cifra a sinistra, con il peso maggiore, è chiamata senior.
Un byte definisce un'unità di informazione di 8 bit, 1 byte = 23 bit, ad esempio 10110011 o 01010111, ecc.,
Per rappresentare numeri a più cifre nel sistema di numerazione binario, è necessario un gran numero di cifre binarie. La registrazione è più semplice se si utilizza il sistema numerico esadecimale.
Il sistema di numerazione esadecimale si basa sul numero 16=, che utilizza 16 elementi di notazione: numeri da 0 a 9 e le lettere A, B, C, D, E, F. Per convertire un numero binario in esadecimale è sufficiente dividere il numero binario in quattro gruppi di bit: la parte intera da destra a sinistra, la parte frazionaria da sinistra a destra della virgola decimale. I gruppi esterni potrebbero essere incompleti.
Ciascun gruppo binario è rappresentato da un corrispondente carattere esadecimale (Tabella 1). Ad esempio, il numero binario 0101110000111001 in esadecimale è espresso come 5C39.
Il sistema numerico decimale è più conveniente per l'utente. Pertanto, molti dispositivi digitali, lavorando con numeri binari, ricevono ed emettono numeri decimali all'utente. In questo caso viene utilizzato il codice binario-decimale.
Un codice decimale binario è formato sostituendo ciascuna cifra decimale di un numero con una rappresentazione binaria a quattro cifre di quella cifra nel codice binario. Ad esempio, il numero 15 è rappresentato come 00010101 BCD (Binary Coded Decimal). In questo caso ogni byte contiene due cifre decimali. Tieni presente che il codice BCD in questa conversione non è un numero binario equivalente a un numero decimale.
La branca della logica matematica che studia le relazioni tra variabili logiche che hanno solo due valori si chiama algebra della logica. L'algebra della logica è stata sviluppata dal matematico inglese J. Boole ed è spesso chiamata algebra booleana. L'algebra logica è la base teorica per la costruzione di sistemi di elaborazione delle informazioni digitali. Innanzitutto, sulla base delle leggi dell'algebra logica, viene sviluppata un'equazione logica del dispositivo, che consente di collegare elementi logici in modo tale che il circuito esegua una determinata funzione logica.

  • Aritmetica E rompicapo nozioni di base costruzione computer. Attualmente, nella vita di tutti i giorni, per codificare le informazioni numeriche, viene utilizzato un sistema di numerazione decimale a base 10, che utilizza 10 elementi di notazione: numeri 0,1,2,...8,9. Nel primo...


  • Aritmetica E rompicapo nozioni di base costruzione computer. Attualmente, nella vita di tutti i giorni, i decimali vengono utilizzati per codificare informazioni numeriche. Principio del controllo del programma computer.


  • Nome " elettronico informatica auto» corrisponde alla domanda originale computer- tu di più ". Aritmetica E rompicapo nozioni di base costruzione computer.


  • 1642 – Pascal sviluppa il modello informatica automobili per l'esecuzione aritmetica Azioni ( costruito nel 1845 e fu chiamata “Ruota Pascal”).
    Sono in corso ricerche nel campo dell'optoelettronica e edificio sulla sua base computer...


  • Il principio fondamentale costruzione tutto moderno computerè il controllo del software. Nozioni di base insegnamenti sull'architettura informatica automobili
    Struttura reale computer molto più complicato di quello discusso sopra (si può chiamare logico struttura).


  • Basta scaricare i cheat sheet logico programmazione - e nessun esame ti fa paura!
    Nozioni di base programmazione in Turbo-Prolog: aritmetica calcoli e operazioni di confronto.


  • Modellazione al computer - la base rappresentazione della conoscenza in computer (costruzione varie basi di conoscenza).
    6) Test e debugging: - debugging sintattico. - debug semantico (debugging logico strutture). - calcoli dei test, analisi dei risultati dei test...


  • Un metodo è un modo, un modo per raggiungere un obiettivo, Costruzione albero dei guasti.
    3. definire in termini la relazione tra causa ed eventi principali logico Operazioni "AND" e "OR".


  • Sono di grande importanza per la scienza, sono pilastri logica, perché senza queste leggi logiche impensabile. rompicapo le leggi sono regole oggettivamente esistenti e necessariamente applicate costruzione logico pensiero.


  • Il modello informativo è il punto di partenza costruzione modello di database datalogico e funge da modello intermedio per gli specialisti in materia (ad es
    Poi su di lei base concettuale ( logico), modelli interni (fisici) ed esterni.

Pagine simili trovate:10


Nei dispositivi digitali devi avere a che fare con diversi tipi di informazioni. Si tratta di informazioni binarie pure, ad esempio se il dispositivo è acceso o spento, se funziona o meno. Le informazioni possono essere presentate sotto forma di testi, quindi le lettere dell'alfabeto devono essere codificate utilizzando livelli di segnale binari. Molto spesso le informazioni possono essere sotto forma di numeri. I numeri possono essere rappresentati in diversi sistemi numerici. La forma in cui i numeri sono scritti in essi differisce in modo significativo l'uno dall'altro, quindi, prima di passare alle caratteristiche di rappresentazione dei numeri nella tecnologia digitale, considereremo la loro registrazione in diversi sistemi numerici.

Sistemi numerici

Un sistema numerico è un insieme di tecniche e regole per rappresentare i numeri utilizzando segni digitali.

Esistono molti modi per scrivere numeri utilizzando i segni digitali, ma qualsiasi sistema numerico utilizzato deve fornire:

  • intervallo di rappresentazione di qualsiasi numero;
  • unicità di rappresentazione (ogni combinazione di simboli corrisponde ad un solo valore).

Tutti i sistemi numerici sono divisi in posizionali e non posizionali. IN sistema numerico non posizionale Il significato di una cifra in qualsiasi punto del numero è lo stesso, vale a dire non dipende dalla posizione della località. Ad esempio, un sistema unario con un simbolo uguale a uno. Questo sistema numerico è destinato al conteggio totale (nodi per “memoria”, tacche, trattini, conteggio sulle dita, ecc.). Per rappresentare un numero in questo sistema, è necessario annotare il numero di unità (bastoncini) pari al numero specificato. Questo sistema è inefficace perché il numero è troppo lungo.

Un altro esempio di sistema numerico "quasi non posizionale" è il sistema di conteggio romano. Il sistema di conteggio romano utilizza i seguenti simboli:

io - 1; V-5; X-10; b-50; C-100; 0-500; M-1000.

Le regole per la conversione dal sistema numerico romano al sistema arabo sono le seguenti. Il numero più piccolo a destra del numero più grande viene aggiunto al numero più grande, mentre il numero più piccolo a sinistra del numero più grande viene sottratto dal numero più grande.

Un esempio di traduzione dal sistema romano al sistema numerico arabo:

SSHUUP =100+100+10 + 5 + 5+1 + 1= 222;

Х1Х1У = 10 + (10 - 1) = 19.

Come risulta dalla regola di traduzione, il sistema romano non è del tutto non posizionale. Questo sistema è usato raramente (quadrante, architettura, storia, ecc.).

Sistemi numerici posizionali - questi sono sistemi numerici in cui il valore della cifra nel numero viene record N dipende dalla sua posizione (luogo). Ad esempio, nel sistema decimale, il numero 05 sta per cinque unità, 50 sta per cinque decine, 500 sta per cinque centinaia, ecc.

Base (base) sistemi numerici (ts) - questo è il numero di segni o simboli utilizzati per rappresentare i numeri in un dato sistema numerico.

È possibile un numero infinito di sistemi numerici posizionali, poiché qualsiasi numero può essere preso come base e si può formare un nuovo sistema numerico.

Esempi di alcuni sistemi numerici posizionali e delle loro applicazioni sono forniti nella tabella. 2.1.

Nella tabella 2.2, per facilità di confronto, vengono forniti i primi 23 numeri della serie naturale di numeri in vari sistemi numerici.

Come si può vedere dalla tabella. 2.2, per scrivere lo stesso numero in sistemi numerici diversi, è necessario un numero diverso di posizioni o cifre. Ad esempio, 14 |0 = 1 1 10 2 = 16 8 = E [v. Cioè, nel sistema numerico decimale, il numero 14 occupa due posizioni (due cifre), nel sistema numerico binario - quattro posizioni, nel sistema numerico esadecimale - una posizione. Più piccola è la base del sistema numerico

Esempi di sistemi numerici posizionali

Nome

resa dei conti stimata

Base

resa dei conti stimata

Usato

Applicazione

Binario

Nell'informatica digitale, nella matematica discreta, nella programmazione

Trinità

Tre segni qualsiasi: (-, 0,+), (-1,0,+1), (A,B, CON), (X, Y, T) o tre cifre: (1,2, 3)

Nell'elettronica digitale

Ottale

Decimale

Onnipresente

Sedici

A, B, C, T

Nell'informatica digitale, la programmazione

sessanta

00, 01,02,..., 59

Come unità di tempo, angoli, coordinate,

longitudine e latitudine

Per una data lunghezza della griglia di bit, il valore assoluto massimo del numero che può essere scritto è limitato.

Lascia che la lunghezza della griglia di bit sia uguale a un numero positivo./V, il numero massimo è

?^((Dtah - Io~ 1

Ad esempio, quando N= 8:

Lu)tah = Yu 8 - 1 = 9999999 (| 0) ;

L(2)max - 2 8 - 1 = 256 - 1 = 257 (|0) = 1111111 (2) ;

UN ( 1 6)max = 16 8 - 1 =4294967296 - 1 = 4294967295 (10) = RRRRRRR (16) .

Quindi, con la stessa lunghezza della griglia di bit N=8 massimo in valore assoluto L (16)P1ax > L (10)P1ax > L (2)gpax, ovvero più #, più L ((?) max.

Numeri naturali in diversi sistemi numerici

Decimale

Binario

Ottale

Esadecimale

Traduzione in sistemi numerici posizionali

Conversione al sistema di numerazione decimale. Qualsiasi numero N nel sistema numerico posizionale può essere rappresentato come un polinomio

Per convertire al sistema decimale, calcoliamo questo importo.

Ad esempio, il numero 253.24 10 in formato decimale regolare (

Esempio 2.1. Converti il ​​numero binario 1101.01(2) nel sistema numerico decimale.

Il sistema di numerazione binario utilizza due cifre 0 E 1 E il NUMERO binario 1 1 01.012 (

TU 2 = 1101.01 2 = 1 2 3 + 1 2 2 + 0 2 + 1 2° + 0 2 _| +12-2=

“=8 + 4 + 0+1+0+1/4= 14,25 10 .

Se, secondo le regole dell'aritmetica decimale, eseguiamo le azioni a destra dell'uguaglianza di cui sopra, otteniamo l'equivalente decimale di un numero binario:

1101,01 2 = 8 + 4 + 0+ 1 +0 + 1/4 = 14,25 10 .

Esempio 2.2. Converti il ​​numero ottale 53.2 8 (# = 8) nel sistema numerico decimale:

2560 + 240 + 7 + 8/16 = 2807,25 10 .

Conversione di numeri dal sistema numerico decimale a un sistema numerico arbitrario con una base Regole di traduzione intera parte Il numero decimale è il seguente. L'intera parte del numero decimale deve essere divisa in sequenza per ts(la base di un sistema numerico arbitrario) finché il numero decimale diventa zero. I resti ottenuti durante la divisione e scritti in sequenza, a partire dall'ultimo resto, sono le cifre del numero del sistema numerico ^-ario.

Regole di traduzione parte frazionaria I numeri decimali sono i seguenti. La parte frazionaria di un numero decimale deve essere moltiplicata in sequenza per (la base di un sistema arbitrario) e l'intera parte deve essere separata finché non diventa uguale a zero o viene raggiunta la precisione di traduzione specificata.

Le parti intere dei risultati della moltiplicazione, nell'ordine in cui sono ottenute, compongono il numero nel nuovo sistema.

Esempio 2.4. Converti il ​​numero 26.625 10 nel sistema numerico binario.

Traduciamo l'intera parte del numero:

  • 26: 2 = 13, resto 0;
  • 13:2 = 6, il resto è 1;
  • 6:2 = 3, resto 0;
  • 3:2=1, il resto è 1;
  • 1: 2 = 0, il resto è 1.

Il numero decimale diventa zero, la divisione è completata. Riscriviamo tutti i resti dal basso verso l'alto e otteniamo il numero binario 11010 2.

  • 0,625 2 = 1,250, parte intera 1;
  • 0,250 2 = 0,500, parte intera 0;
  • 0,500 2 = 1,000, parte intera 1;
  • 0,000 2 = 0,000, parte intera 0.

La parte intera è diventata uguale a zero. Riscriviamo le parti intere dei risultati della moltiplicazione dall'alto verso il basso e otteniamo il numero binario 0,1010 2.

Esempio 2.5. Converti il ​​numero 70.05 10 nel sistema numerico ottale con una precisione di 4 cifre.

Traduciamo l'intera parte del numero:

  • 70: 8 = 8, il resto è 6;
  • 8:8=1, il resto è 0;
  • 1: 8 = 0, il resto è 1.

Il numero decimale diventa zero, la divisione è completata. Riscriviamo tutti i resti dal basso verso l'alto e otteniamo il numero ottale 106 8.

Conversione della parte frazionaria del numero:

  • 0,05 8 = 0,40, parte intera 0;
  • 0,40 8 = 3,20, parte intera 3;
  • 0,30 8 = 2,40, parte intera 2;
  • 0,40 8 = 3,20, parte intera 3.

La parte intera non diventa uguale a zero, si ottiene una serie infinita, il processo di traduzione è completato, poiché è stata raggiunta la precisione specificata. Riscriviamo le parti intere dei risultati della moltiplicazione dall'alto verso il basso e otteniamo il numero ottale 0,0323 8.

Esempio 2.6. Converti il ​​numero 76.05 10 nel sistema numerico esadecimale con una precisione di 4 cifre.

Traduciamo l'intera parte del numero:

  • 76: 16 = 4, il resto è 12 -» C;
  • 4: 16 = 0, il resto è 4.

Il numero decimale diventa zero, la divisione è completata. Riscriviamo tutti i resti dal basso verso l'alto e otteniamo il numero esadecimale 4C 16.

Conversione della parte frazionaria del numero:

  • 0,05 16 = 0,80, parte intera 0;
  • 0,80 16 = 12,80, parte intera 12 -> C;
  • 0,80 16 = 12,80, parte intera 12 -> C;
  • 0,80 -16= 12,80, parte intera 12 -> C.

La parte intera non diventa uguale a zero, si ottiene una serie infinita, il processo di traduzione è completato, poiché è stata raggiunta la precisione specificata. Riscriviamo le parti intere dei risultati della moltiplicazione dall'alto verso il basso e otteniamo il numero esadecimale 0.0ССС 16.

Esempio 2.7. Converti il ​​numero 6610 in un sistema numerico arbitrario, ad esempio con una base c = 5.

Traduciamo l'intera parte del numero:

  • 66: 5 = 13, il resto è 1;
  • 13:5 = 2, il resto è 3;
  • 2:5 = 0, il resto è 2.

Il numero decimale diventa zero, la divisione è completata. Riscriviamo tutti i resti dal basso verso l'alto e otteniamo il quintuplo numero 231 5.

Converti da binario a ottale ed esadecimale. Esiste un algoritmo semplificato per questo tipo di operazione.

Traduzione dell'intera parte. Il numero 2 viene elevato alla potenza necessaria per ottenere la base del sistema a cui è necessario convertirsi. Per il sistema ottale (8 = 23) otteniamo il numero 3 (triade), per il sistema esadecimale (16 = 24) otteniamo il numero 4 (tetrade).

Dividiamo il numero da tradurre in un numero di cifre pari a 3 per il sistema numerico ottale e pari a 4 per il sistema numerico esadecimale.

Trasformiamo le triadi secondo la tabella delle triadi per il sistema ottale e le tetradi secondo la tabella delle tetradi per il sistema numerico esadecimale (Tabella 2.3).

Esempio 2.8. Convertire il numero binario 101110 2 in sistemi numerici ottali ed esadecimali:

  • ottale - 101 110 -> 56 8;
  • esadecimale - 0010 1110 -> 2 E]v.

Traduzione della parte frazionaria. L'algoritmo per convertire la parte frazionaria dal sistema numerico binario ai sistemi numerici ottale ed esadecimale è simile all'algoritmo per le parti intere di un numero,

Tabella delle triadi e delle tetradi

ma la suddivisione in triadi e tetradi va a destra della virgola decimale, le cifre mancanti vengono integrate con zeri a destra.

Esempio 2.9. Convertire 11101.01011 2 in sistemi numerici ottali ed esadecimali:

  • ottale - 011 101.010 110 -> 35,26 8;
  • esadecimale - 0001 1101.0101 1000 -> 1Z),58, 6 .

Convertire dai sistemi ottale ed esadecimale a binario.

Per questo tipo di operazione esiste un algoritmo di inversione semplificato. Per il sistema ottale si converte secondo la tabella in terzine: 0->000 4 -> 100;

  • 1 -> 001 5 -> 101;
  • 2 -> 010 6 -> 110;
  • 3 -> 011 7 -> 111.

Per esadecimale: convertiamo secondo la tabella in quartetti:

UN -> 1010

IN-> 1011

Esempio 2.10. Converti il ​​numero ottale 2438 e il numero esadecimale 7C 16 nel sistema numerico binario:

  • 243 8 -> ON 100011 2;
  • 7C 16 -> 1111 1100 2.

Aritmetica binaria

Aggiunta. La tabella per la somma dei numeri binari è semplice:

  • 0 + 0 = 0;
  • 0+1 = 1;
  • 1+0=1;
  • 1 + 1 = 10;
  • 1 + 1 + 1 = 11.

Quando vengono aggiunte due unità, la cifra eccede e viene trasferita alla cifra più significativa. Un overflow di cifre si verifica quando il valore del numero in esso contenuto diventa uguale o maggiore della base.

Esempio 2.11. Eseguire l'addizione nel sistema numerico binario.

1 1 1 Passa all'ordine superiore

1 1 0 0 0 1 = 49 - primo termine

  • 1 1 0 1 1 = 27 - secondo termine
  • 1 0 0 1 1 0 0 = 76 - somma

Sottrazione binaria. Diamo un'occhiata alle regole per sottrarre un numero più piccolo da uno più grande. Nel caso più semplice, per ogni cifra, le regole di sottrazione binaria hanno la forma

  • 2 2 11
  • 0 10 1

Quando viene effettuata una sottrazione (0 - 1), si prende in prestito dalla cifra più alta. Il punto interrogativo significa che la cifra del minuendo cambia a seguito del prestito secondo la regola: sottraendo (0-1) nella cifra della differenza, si ottiene, le cifre del minuendo, a partire dalla successiva uno, sono invertiti (invertiti) fino alla prima unità incontrata (compresa). Successivamente, il minuendo viene sottratto dalle cifre modificate.

Diamo un'occhiata a un esempio di sottrazione di numeri a più cifre (un numero più piccolo viene sottratto da un numero più grande).

Esempio 2.12. Sottrazione nel sistema numerico binario:

  • 0 111 Variazione riduzione prestito
  • 1 1 0 0 0 1 = 49 - minuendo
  • 11011 - 21 - sottraendo
  • 10 1 1 0 = 22 - differenza

Moltiplicazione. L'operazione di moltiplicazione viene eseguita utilizzando una tabella di moltiplicazione secondo il solito schema (utilizzato nel sistema numerico decimale) con moltiplicazione sequenziale del moltiplicando per la cifra successiva del moltiplicatore.

Esempio 2.13. Moltiplicazione nel sistema numerico binario:

  • *1011
  • 1011
  • 110111

Divisione. Quando dividi per una colonna, devi eseguire la moltiplicazione e la sottrazione come risultati intermedi.

Scrittura di numeri decimali (decimale in codice binario)

A volte è conveniente memorizzare i numeri nella memoria del processore in formato decimale (ad esempio, per la visualizzazione). Per scrivere tali numeri, vengono utilizzati codici decimali binari. Per registrare una cifra decimale vengono utilizzati quattro bit binari (tetradi). Con quattro bit si possono codificare 16 cifre (2 4 = 16). Sono proibite combinazioni extra nel codice decimale binario. La corrispondenza tra codice decimale binario e cifre decimali è riportata nella tabella. 2.4.

Tabella 2.4

Corrispondenza tra cifre BCD e decimali

Codice BCD

Codice decimale

Le restanti combinazioni di codici binari nel tetrado sono vietate.

Esempio 2.14. Scrivi il codice decimale binario del numero 1258 10 -

1258 w = 0001 0010 0101 1000 2 .

Il primo taccuino contiene il numero 1, il secondo - 2, il terzo - 5 e l'ultimo taccuino contiene il numero 8. In questo esempio, per scrivere il numero 1258 sono necessari quattro taccuini. Il numero di celle di memoria del microprocessore dipende dalla sua capacità. Con un processore a 16 bit, l'intero numero entrerà in una cella di memoria.

Esempio 2.15. Scrivi il codice decimale binario per il numero 589 10:

589 10 = 0000 0101 1000 1001 2 .

In questo esempio sono sufficienti tre notebook per registrare un numero, ma la cella di memoria è a 16 bit. Pertanto, la tetrade più alta è piena di zeri. Non cambiano il significato della cifra.

Quando si scrivono numeri decimali, spesso è necessario scrivere il segno del numero e il punto decimale (nei paesi di lingua inglese, un punto). BCD viene spesso utilizzato per comporre un numero di telefono o comporre codici di servizio telefonico. In questo caso, oltre alle cifre decimali, vengono spesso utilizzati i simboli “*” o “#”. Per scrivere questi caratteri in codice decimale binario si utilizzano combinazioni proibite (Tabella 2.5).

Tabella 2.5

BCD corrispondente e caratteri aggiuntivi

Molto spesso, una cella di memoria (8, 16 o 32 bit) viene allocata nella memoria del processore per memorizzare una cifra decimale. Questo viene fatto per aumentare la velocità del programma. Per distinguere questo modo di scrivere un numero BCD da quello standard, il modo di scrivere un numero decimale, come mostrato nell'esempio, è chiamato formato BCD compresso.

Esempio 2.16. Scrivi il codice BCD decompresso per il numero 1258 10 per un processore a 8 bit:

  • 1258 00000001
  • 00000010 00000101 00001000

La prima riga contiene il numero 1, la seconda - 2, la terza - 5 e l'ultima riga contiene il numero 8. In questo esempio, per scrivere il numero 1258 erano necessarie quattro righe (celle di memoria).

Somma di numeri decimali binari. La somma dei numeri decimali binari può essere eseguita secondo le regole dell'aritmetica binaria ordinaria, quindi è possibile eseguire una correzione decimale binaria. La correzione BCD consiste nel verificare la validità dei codici di ciascuna tetrade. Se viene rilevata una combinazione vietata in qualsiasi tetrade, ciò indica un overflow. In questo caso è necessario effettuare una correzione decimale binaria. La correzione BCD consiste nel sommare ulteriormente il numero sei (il numero di combinazioni vietate) con il tetrade in cui si è verificato un overflow o un trasferimento al tetrade più alto. Ecco un esempio:

  • 0 0 0 1 10 0 0 0 0 0 1 0 0 1 1
  • 0 0 10 10 11

Nel secondo taccuino è stata trovata una combinazione proibita. Effettuiamo una correzione decimale binaria: sommiamo il numero sei con la seconda tetrade:

  • 0 0 10 10 11
  • 0 0 0 0 0 1 1 0
  • 0 0 1 1 0 0 0 1

Forme di rappresentazione informatica di dati numerici

In matematica si utilizzano due forme di scrittura dei numeri: naturale (il numero è scritto nella sua forma naturale) e normale (la scrittura del numero può essere diversa a seconda delle restrizioni imposte sulla forma).

Esempi forma naturale scrivere i numeri:

  • 15300 - numero intero; 0,000564 - frazione propria;
  • 6.4540 è una frazione impropria.

Esempio forma normale registrazioni dello stesso numero 25.340 a seconda delle restrizioni imposte alla forma normale:

25 340 = 2.534 - 10 4 = 0.2534 - 10 5 = 2534000 - 10“ 2 ecc.

In informatica, con la rappresentazione naturale dei numeri, si stabilisce la lunghezza della griglia di bit, nonché una distribuzione fissa delle parti frazionarie e intere. Pertanto, questo modo di rappresentare i numeri è chiamato c Punto fisso.

La rappresentazione di un numero in forma normale si chiama rappresentazione virgola mobile(la posizione della virgola cambia).

Per lo più i computer mainframe lavorano con numeri rappresentati in formato a virgola mobile, mentre i computer specializzati lavorano con numeri a virgola fissa, ma un certo numero di macchine lavorano con numeri in questi due formati.

La natura della programmazione dipende dal modo in cui i numeri sono rappresentati.

Pertanto, quando si scrivono programmi per computer in esecuzione in un sistema con Punto fisso,è necessario tenere traccia della posizione della virgola ed eseguire operazioni con virgola mobileè necessario un numero maggiore di microoperazioni, il che riduce la velocità del computer.

Virgola fissa (punto)

Nei computer moderni, il metodo di rappresentazione dei numeri in virgola fissa viene utilizzato principalmente per rappresentare i numeri interi.

Poiché i numeri possono essere positivi e negativi, nella griglia dei bit, quando vengono rappresentati dalla macchina, uno o due bit (per i codici modificati) vengono assegnati al segno del numero, e i bit rimanenti formano campo numerico. I bit di segno, che possono trovarsi all'inizio o alla fine di un numero, contengono informazioni sul segno del numero. Il segno “+” è codificato come zero, il segno “-” è codificato come uno. Per i codici modificati, il segno “+” è codificato con due zeri e il segno “-” è codificato con due uno. Vengono introdotti codici modificati per rilevare risultati di calcolo errati, ad es. quando il risultato supera la dimensione massima della griglia di bit ed è necessario un riporto dal bit significativo.

Ad esempio, come risultato dell'esecuzione di operazioni nel bit di segno, il numero 01 indica un overflow positivo della griglia di bit e il numero 10 indica un overflow negativo della griglia di bit.

Il campo numerico ha un numero costante di cifre: P. L'ambito di rappresentazione degli interi è limitato ai valori -(2 p- 1) e +(2" - 1).

Ad esempio, nel codice binario che utilizza una griglia a 6 bit, il numero 7 in forma a virgola fissa può essere rappresentato come

dove la cifra a sinistra del punto è il segno del numero e le cifre a destra del punto sono la mantissa del numero in codice diretto. Qui si presuppone che la virgola sia fissata a destra della cifra di ordine inferiore, e il punto nell'immagine del numero in questo caso separa semplicemente il bit del segno dalla mantissa del numero.

In futuro questo tipo di rappresentazione del numero in forma macchina verrà spesso utilizzato negli esempi. Puoi utilizzare un'altra forma per rappresentare un numero in forma macchina:

dove il bit del segno è separato da parentesi quadre.

Il numero di cifre nella griglia di bit allocate per rappresentare la mantissa di un numero determina l'intervallo e l'accuratezza della rappresentazione di un numero in virgola fissa. Il numero binario massimo in valore assoluto è rappresentato da uno in tutte le cifre, escluso quello con segno, cioè per intero

|/1|massimo = (2 (P - 1) - 1),

Dove P - tutta la lunghezza della griglia di bit.

In caso di griglia a 16 bit

|L|massimo = (2(16- 1)- 1) = 3276710,

quelli. L'intervallo di rappresentazione dei numeri interi in questo caso sarà compreso tra +3 276710 e -3276710.

Nel caso in cui la virgola sia fissata a destra della cifra di ordine inferiore della mantissa, ad es. per gli interi, i numeri il cui modulo è maggiore di (2 (P- 1) - 1) e meno di uno non sono rappresentati in virgola fissa. In questo caso vengono chiamati i numeri il cui valore assoluto è inferiore alle unità della cifra meno significativa della griglia di bit macchina zero. Lo zero negativo è proibito.

In alcuni casi, quando è possibile operare solo con moduli di numeri, l'intera griglia di bit, compreso il bit più significativo, viene allocata per rappresentare il numero, il che consente di ampliare il campo di rappresentazione dei numeri.

Rappresentazione di numeri negativi in ​​formato a virgola fissa

Per semplificare le operazioni aritmetiche, i computer utilizzano codici binari speciali per rappresentare i numeri negativi: reciproco e complementare. Utilizzando questi codici, è semplificato determinare il segno del risultato di un'operazione durante l'addizione algebrica. L'operazione di sottrazione (o addizione algebrica) si riduce alla somma aritmetica degli operandi, facilitando lo sviluppo dei segni di overflow della griglia di bit. Di conseguenza, i dispositivi informatici che eseguono operazioni aritmetiche risultano semplificati.

È noto che uno dei modi per eseguire un'operazione di sottrazione è sostituire il segno del sottraendo con quello opposto e aggiungerlo al minuendo:

A-B = A + (-B).

Questa sostituisce l'operazione di sottrazione aritmetica con l'operazione di addizione algebrica, che può essere eseguita utilizzando sommatori binari.

Per la rappresentazione automatica dei numeri negativi vengono utilizzati i seguenti codici: diretto, complementare e inverso. Una definizione semplificata di questi codici può essere data come segue. Se il numero UN nel normale codice binario (direttamente codice binario) raffigurato come

poi il numero -UN nello stesso codice è rappresentato come

[-D] P r - 1-?7 /g th /7 _| J L _2....J G | uno 0,

e dentro inversione(inverso) codice che assomiglierà a questo numero

[-D] 0 b - 1*^77 *2/7-1 *2 /g _ UN 0,

UN, - 1 se un 1- 0, i,- = 0, se i, = 1,

i, è la cifra della /"-esima cifra di un numero binario. Di conseguenza, quando si passa dal codice diretto al codice inverso, tutte le cifre delle cifre matisse del numero vengono invertite.

Poi il numero -UN V aggiuntivo il codice è rappresentato come

Pertanto, per ottenere il codice complementare dei numeri negativi, è necessario prima invertire la parte digitale del numero originale, ottenendo il suo codice inverso, e poi aggiungere uno alla cifra meno significativa della parte digitale del numero.

Il complemento di un numero si ottiene sostituendolo con un nuovo numero, completandolo con un numero pari al peso della cifra successiva alla cifra più significativa della griglia di bit utilizzata per rappresentare la mantissa del numero in formato a virgola fissa. Pertanto, tale codice numerico viene chiamato aggiuntivo.

Immaginiamo di avere solo due cifre per rappresentare i numeri nel sistema decimale. Quindi il numero massimo che può essere rappresentato sarà 99, e il peso della terza cifra più alta, inesistente, sarà 10 2, cioè 100. In questo caso, per il numero 20, il numero complementare sarà 80, che complementa 20 a 100 (100 - 20 = 80). Quindi, per definizione, sottrazione

può essere sostituito con l'aggiunta:

Qui l'unità più alta va oltre la griglia di bit assegnata, nella quale rimane solo il numero 30, cioè Il risultato della sottrazione del numero 20 da 50.

Consideriamo ora un esempio simile per i numeri rappresentati in codice binario a 4 bit. Troviamo il numero aggiuntivo per 0010 2 = 2 10. Dobbiamo sottrarre 0010 da 0000, otteniamo 1110, che è il codice aggiuntivo 2. La cifra mostrata tra parentesi quadre in realtà non esiste. Ma poiché abbiamo una griglia a 4 righe, è in linea di principio impossibile eseguire una tale sottrazione, e ancor di più stiamo cercando di eliminare la sottrazione. Pertanto il codice numerico aggiuntivo si ottiene nel modo descritto in precedenza, ovvero Per prima cosa ottengono il codice inverso del numero e poi ne aggiungono uno. Avendo fatto tutto questo con il nostro numero (2), è facile vedere che si otterrà una risposta simile.

Sottolineiamo che i codici del complemento a due e del complemento a due vengono utilizzati solo per rappresentare i numeri binari negativi in ​​forma di virgola fissa. I numeri positivi in ​​questi codici non cambiano la loro immagine e sono rappresentati come nel codice diretto.

Pertanto, le cifre digitali di un numero negativo nel codice diretto rimangono invariate e nella parte del segno viene scritta un'unità.

Diamo un'occhiata a semplici esempi.

Il sette in codice diretto è rappresentato come segue:

Pr = 0,00011 1 2 .

Numero -7 in codice diretto

[-7] pr = 1.000111 2 ,

e nel codice inverso sembrerà

[-7] giri = 1,111000 2,

quelli. gli uno vengono sostituiti da zero e gli zeri vengono sostituiti da uno. Lo stesso numero nel codice in complemento a due sarà

[-7] extra = 1.111001 2 .

Consideriamo ancora come il procedimento di sottrazione, utilizzando la rappresentazione del sottraendo nel codice in complemento a due, si riduce al procedimento di addizione. Sottrarre il numero 7 da 10: 10-7 = 3. Se entrambi gli operandi sono presentati in codice diretto, la procedura di sottrazione viene eseguita come segue:

0.001010 -1.000111 0.000011 =310.

E se sottraibile, cioè -7, presentato in complemento a due, allora il procedimento di sottrazione si riduce al procedimento di addizione:

0.001010 + 1,111001 1 0.000011 =310.

Al giorno d'oggi, i computer utilizzano in genere il codice in complemento a due per rappresentare i numeri negativi in ​​formato a virgola fissa.

Numeri reali

Vengono chiamate quantità numeriche che possono assumere qualsiasi valore (intero e frazionario). numeri reali.

I numeri reali sono rappresentati nella memoria del computer in formato a virgola mobile. Il formato in virgola mobile utilizza la rappresentazione dei numeri reali IO come prodotto della mantissa T in base al sistema numerico R in una certa misura P che è chiamato al fine:

IO= w r p.

Ad esempio, il numero 25.324 può essere scritto come segue:

Qui T= 0,25324 - mantissa; P= 2 - ordine. L'ordine indica quante posizioni e in quale direzione dovrebbe "nuotare", ad es. spostamento, punto decimale nella mantissa. Da qui il nome "virgola mobile".

Valgono però anche le seguenti uguaglianze:

25.324 = 2.5324 - 10 1 = 0.0025324 10 4 = 2532.4 - 10" 2 ecc.

Si scopre che la rappresentazione di un numero in virgola mobile è ambigua? Per evitare ambiguità, i computer utilizzano una rappresentazione normalizzata di un numero in forma a virgola mobile. La mantissa nella rappresentazione normalizzata deve soddisfare la condizione

In altre parole, la mantissa è minore di uno e la prima cifra significativa non è zero. Ciò significa che per il numero considerato la rappresentazione normalizzata sarà 0,25324 10 2. Diversi tipi di computer utilizzano opzioni diverse per rappresentare i numeri in formato a virgola mobile. Ad esempio, consideriamo uno dei possibili. Supponiamo che un numero reale sia rappresentato nella memoria del computer in forma di virgola mobile nel sistema di numerazione binario (R= 2) e occupa una cella di 4 byte. La cella deve contenere le seguenti informazioni sul numero: il segno del numero, l'ordine e le cifre significative della mantissa. Ecco come sono disposte queste informazioni in una cella:

Il bit più significativo del 1° byte memorizza il segno del numero. In questa cifra, zero indica più, uno - meno. I restanti 7 bit del primo byte contengono l'ordine della macchina. I successivi tre byte memorizzano le cifre significative della mantissa.

Sette cifre binarie contengono numeri binari nell'intervallo da 0000000 a 1111111. Nel sistema decimale, ciò corrisponde all'intervallo da 0 a 127, per un totale di 128 valori. Il segno dell'ordine non è memorizzato nella cella. Ma l’ordine, ovviamente, può essere sia positivo che negativo. È ragionevole dividere questi 128 valori equamente tra valori di ordine positivo e negativo.

In questo caso si stabilisce la seguente corrispondenza tra l’ordine della macchina e quello reale (chiamiamolo matematico):

Ordine della macchina

Ordine matematico

Se indichiamo l'ordine della macchina Sig, e matematico - R, quindi la connessione tra loro sarà espressa dalla formula

Sig = p+ 64.

Quindi l'ordine della macchina è spostato rispetto a quello matematico di 64 unità e ha solo valori positivi. Quando si eseguono calcoli in virgola mobile, il processore tiene conto di questo offset.

La formula risultante è scritta nel sistema decimale. Poiché 64 |0 = 40 16 (controlla!), allora in esadecimale la formula assumerà la forma

Мр 1в = Рб + 40 16.

E infine, in binario

Мр 2 = р 2 + tu 0000 2 .

Ora possiamo scrivere la rappresentazione interna di 25.324 in virgola mobile.

  • 1. Convertiamolo nel sistema numerico binario con 24 cifre significative:
  • 25,324 10 = 11001,0101001011110001101 2 .
  • 2. Scrivilo sotto forma di un numero binario in virgola mobile normalizzato:
  • 0.110010101001011110001101 Yu 101 .

Qui la mantissa, la radice (2 10 = 10 2) e l'esponente (5 10 = 101 2) sono scritti in binario.

3. Calcoliamo l'ordine della macchina:

Signor 2 = 101 + 100 0000= 100 0101.

4. Scrivi la rappresentazione del numero in una cella di memoria:

Per ottenere la rappresentazione interna del numero negativo -25.324 è sufficiente sostituire lo 0 nella cifra segno del numero con 1 nel codice ottenuto sopra.

E in forma esadecimale:

Qui non avviene alcuna inversione, come per i numeri in virgola fissa negativi.

Consideriamo infine la questione dell'intervallo di numeri rappresentabili in virgola mobile. Ovviamente, i numeri positivi e negativi si trovano simmetricamente attorno allo zero. Pertanto, i numeri massimo e minimo sono uguali in valore assoluto: Io tah =|/? T; p |. Il numero più piccolo in valore assoluto è zero. Qual è il valore di Itah? Questo è il numero con la mantissa più grande e l'esponente più grande:

0.11111111111111111111111 yu5 111Sh.

Se convertiamo al sistema decimale, otteniamo

L max = (1 -2- 24)-2 64 = 10 19.

Ovviamente l’intervallo dei numeri reali è molto più ampio di quello degli interi. Se il risultato dei calcoli è un numero il cui valore assoluto è maggiore di Lo sono quindi il processore viene interrotto. Questa situazione è chiamata overflow in virgola mobile. Il valore modulo più piccolo diverso da zero è

(1/2) 2 -64 = 2 -66 .

Eventuali valori inferiori a questo valore assoluto vengono percepiti dal processore come zero.

Come sappiamo dalla matematica, l'insieme dei numeri reali è infinito e continuo. L'insieme dei numeri reali che possono essere rappresentati nella memoria del computer in virgola mobile è limitato e discreto. Ogni valore successivo si ottiene aggiungendo uno nell'ultima (24a) cifra alla mantissa di quella precedente. Il numero di numeri reali che possono essere rappresentati con precisione nella memoria della macchina viene calcolato dalla formula

N = 2"-(U-L+ 1)+ 1.

Qui T- numero di cifre binarie della mantissa; U- valore massimo dell'ordine matematico; l- valore minimo dell'ordine. Per l'opzione che abbiamo considerato (/ = 24, U = 63, l= -64) risulta

N=2 146683548.

Tutti gli altri numeri che non rientrano in questo insieme, ma rientrano nell'intervallo di valori accettabili, sono rappresentati in memoria in modo approssimativo (la mantissa viene tagliata al 24° bit). E poiché i numeri contengono errori, anche i risultati dei calcoli con questi numeri conterranno errori. Da quanto sopra, segue la conclusione: i calcoli con numeri reali in un computer vengono eseguiti approssimativamente.

Unità di informazione

Bit (inglese, cifra binaria; anche un gioco di parole: inglese, bit - un po') (una cifra binaria nel sistema numerico binario) è una delle unità di misura più famose per misurare la quantità di informazioni.

Nibble (inglese, nibble, nybble), o nibble, è un'unità di informazione pari a quattro cifre binarie (bit); è conveniente in quanto può essere rappresentato da una cifra esadecimale, cioè è una cifra esadecimale.

Un byte (inglese, byte, è un'abbreviazione della frase BinarYTERm - "termine binario") è un'unità di archiviazione ed elaborazione di informazioni digitali. Nei moderni sistemi informatici, un byte è considerato uguale a otto bit, nel qual caso può assumere uno tra 2 8 = 256 valori diversi (stati, codici). Tuttavia, nella storia dei computer, sono note soluzioni con altre dimensioni di byte, ad esempio 6 bit, 36 bit per PDP- 10. Pertanto, a volte negli standard informatici e nei documenti ufficiali il termine "ottetto" (latino ottetto) viene utilizzato per designare in modo inequivocabile una parola di 8 bit. Nella maggior parte delle architetture informatiche, un byte è il più piccolo insieme di dati indirizzabili in modo indipendente.

Una parola macchina è una quantità dipendente dalla macchina e dalla piattaforma, misurata in bit o byte (triti o triti), uguale alla larghezza dei registri del processore e/o alla larghezza del bus dati (di solito una potenza di due). Sui primi computer, la dimensione della parola coincideva anche con la dimensione minima delle informazioni indirizzabili (la larghezza dei dati posizionati allo stesso indirizzo); sui computer moderni, l'unità minima di informazione indirizzabile è solitamente un byte e una parola è composta da diversi byte. La parola macchina definisce le seguenti caratteristiche della piattaforma hardware:

  • profondità di bit dei dati elaborati dal processore;
  • larghezza dei dati indirizzabili (larghezza del bus dati);
  • il valore massimo di un tipo intero senza segno supportato direttamente dal processore: se il risultato di un'operazione aritmetica supera questo valore, si verifica un overflow;
  • La quantità massima di RAM indirizzabile direttamente dal processore.

Prefissi dei multipli decimali e binari

I prefissi binari sono prefissi davanti alle unità di misura, che indicano la loro moltiplicazione per 2 10 = 1024. A causa della vicinanza dei numeri 1024 e 1000, i prefissi binari sono costruiti per analogia con i prefissi decimali SI standard. Ogni prefisso binario si ottiene sostituendo l'ultima sillaba del corrispondente prefisso decimale con bi (dal latino binarius - binario). I prefissi binari vengono utilizzati per formare unità di informazione che sono multipli di bit e byte. I prefissi sono stati introdotti dalla Commissione Elettrotecnica Internazionale (IEC) nel marzo 1999. Si presentano così (Tabella 2.6).

Presentazione di informazioni testuali in un computer.

Codifiche ASCII e Unicode

Per rappresentare le informazioni di testo in un computer, un determinato codice è associato alla visualizzazione grafica di ciascun carattere. Set di caratteri/codifica (inglese, set di caratteri) - una tabella che specifica la codifica di un insieme finito di caratteri alfabetici (solitamente elementi di testo: lettere, numeri, segni di punteggiatura). Tale tabella associa ogni carattere a una sequenza di uno o più caratteri di un altro alfabeto, come zero e uno (bit).

ASCII(English American Standard Code for Information Interchange) - Tabella di codifica standard americana per i caratteri stampati e alcuni codici speciali (codici da 0x00 a 0x1 F).

ASCIIè una codifica per rappresentare cifre decimali, alfabeti latini e nazionali, caratteri di prefisso

Prefissi binari per formare unità di misura delle informazioni

Binario

consolle

Simile

decimale

consolle

Abbreviazioni IEC per bit, byte

Il valore per il quale viene moltiplicato il valore originale

kibi/kii (2 10)

Kibit, KiB/KlV

mobili/teY (2 20)

Mibit, MiB/MSh

2 20 = 1 048 576

gibi/§іьі (2 30)

Gibit, GiB/vSh

2 30 = 1 073741 824

tebiDebi (2 40)

tera (10 12)

Tibit, TiB/TSh

2 40 = 1 099511 627776

pebi/pebi (2 50)

peta (10 15)

Pibit, PiB/P1V

2 50 = 1 125 899906842624

exbi/exY (2 60)

ex (10 18)

Eibit, EiB/ESh

2 60 = 1 152921504606846976

zebi/gebí (2 70)

zetta (10 21)

Zibit, ZiB/71V

2 70 = 1 180591620717411 303424

yobi/youbi (2 80)

sì (10 24)

Yibit, YiB/U1V

2 80 = 1 208925819614629 174706 176

caratteri di conoscenza e controllo. Originariamente sviluppato (nel 1963) come byte a 7 bit, in seguito all'adozione diffusa del byte a 8 bit ASCII cominciò a essere percepito come la metà di 8 bit. I computer solitamente utilizzano estensioni ASCII con l'ottavo bit coinvolto e la seconda metà di un'altra tabella di codici (ad esempio, KOI 8).

Unicode o Unicode è uno standard di codifica dei caratteri che consente di rappresentare i caratteri di quasi tutte le lingue scritte.

Lo standard è stato proposto nel 1991 dall'organizzazione no-profit Unicode Consortium (Unicode Inc.). L'utilizzo di questo standard consente di codificare un numero molto elevato di caratteri provenienti da scritture diverse: i documenti Unicode possono contenere caratteri cinesi, simboli matematici, lettere dell'alfabeto greco, latino e cirillico; Ciò rende superfluo il cambio delle pagine codici.

Lo standard è composto da due sezioni principali: il set di caratteri universale (English. UCS, set di caratteri universale) e famiglie di codifica (eng. UTF formato di trasformazione Unicode). Insieme universale caratteri specifica una corrispondenza uno a uno tra caratteri e codici che rappresentano numeri interi non negativi. Famiglia di codifica definisce la rappresentazione macchina dei codici UCS.

Per determinare il formato di rappresentazione Unicode, viene scritta una firma all'inizio del file di testo - codice FEFF(non esiste alcun carattere con questo codice in Unicode), chiamato anche byte order mark, distinta base). Questo metodo viene talvolta utilizzato anche per indicare il formato UTF 8, sebbene il concetto di ordine dei byte non si applichi a questo formato.

Codifiche Unicode di base:

  • UTF-8 (EF BB BF);
  • UTF-16BE (FEFF);
  • UTF-16LE (FF FE);
  • UTF-32BE (0000 FEFF);
  • UTF-32LE (FF FE0000).
  • + ^t-2Yat 2 + + + Yao
  • + ^t-2Yat 2 + + + Yao
  • + ^t-2Yat 2 + + + Yao
  • + ^t-2Yat 2 + + + Yao
  • + ^t-2Yat 2 + + + Yao
  • + ^t-2Yat 2 + + + Yao
  • + ^t-2Yat 2 + + + Yao
  • - ^]aggiungi - 1-^1 riv

dispositivo aritmetico-logico

aritmetico: logico dispositivo (ALU) - la parte centrale del processore che esegue operazioni aritmetiche e logiche.

L'ALU implementa una parte importante del processo di elaborazione dei dati. Consiste nell'eseguire una serie di semplici operazioni. Le operazioni ALU rientrano in tre categorie principali: operazioni aritmetiche, logiche e bit. Un'operazione aritmetica è una procedura di elaborazione dati i cui argomenti e risultati sono numeri (addizione, sottrazione, moltiplicazione, divisione,...). Un'operazione logica è una procedura che costruisce un'istruzione complessa (operazioni AND, OR, NOT,...). Le operazioni sui bit di solito comportano spostamenti.

L'ALU è composta da registri, un sommatore con i circuiti logici corrispondenti e un elemento di controllo per il processo in esecuzione. Il dispositivo funziona in base ai nomi (codici) delle operazioni che gli vengono comunicate e che, durante l'invio dei dati, devono essere eseguite sulle variabili poste nei registri.

Un dispositivo logico-aritmetico può essere funzionalmente diviso in due parti: a) un dispositivo microprogramma (dispositivo di controllo) che specifica una sequenza di microistruzioni (comandi); b) un'unità operativa (ALU), in cui è implementata una determinata sequenza di microistruzioni (comandi).

La legge di elaborazione delle informazioni è stabilita dal microprogramma, che è scritto come una sequenza di microcomandi A1,A2, ..., An-1,An. In questo caso, si distinguono due tipi di microistruzioni: esterne, cioè microistruzioni che entrano nell'ALU da fonti esterne e provocano alcune trasformazioni di informazioni in essa (in Fig. 1 microistruzioni A1, A2,..., An) e interni, che vengono generati nell'ALU e influenzano il firmware del dispositivo, modificando l'ordine naturale delle microistruzioni. Ad esempio, una ALU può generare segni a seconda del risultato dei calcoli: un segno di overflow, un segno di numero negativo, un segno che tutti i bit di un numero sono uguali a 0, ecc. In Fig. 1, questi microcomandi sono indicati con p1, p2,..., pm.

I risultati dei calcoli dall'ALU vengono trasmessi tramite i bus di codice di scrittura y1, y2, ..., ys, alla RAM. Funzioni dei registri inclusi nell'ALU: Pr1 - sommatore (o sommatori) - il registro principale dell'ALU, in cui viene generato il risultato dei calcoli; Рг2, РгЗ - registri di termini, fattori, dividendi o divisori (a seconda dell'operazione eseguita); Pr4 - registro di indirizzi (o registri di indirizzi), progettato per memorizzare (a volte generare) gli indirizzi degli operandi e il risultato; Rgb - k registri indice, il cui contenuto viene utilizzato per formare indirizzi; Pr7 - i registri ausiliari che, su richiesta del programmatore, possono essere accumulatori, registri indice o utilizzati per memorizzare risultati intermedi.

Alcuni registri operativi sono accessibili dal programma, ovvero possono essere indirizzati in un comando per eseguire operazioni sul loro contenuto. Questi includono: sommatore, registri indice, alcuni registri ausiliari.

I restanti registri sono inaccessibili al software poiché non possono essere indirizzati nel programma. I dispositivi operativi possono essere classificati in base al tipo di informazioni elaborate, al metodo di elaborazione delle informazioni e alla struttura logica.

L'ALU può funzionare con quattro tipi di oggetti informativi: booleano (1 bit), digitale (4 bit), byte (8 bit) e indirizzo (16 bit). L'ALU esegue 51 diverse operazioni per trasferire o trasformare questi dati. Poiché sono disponibili 11 modalità di indirizzamento (7 per i dati e 4 per gli indirizzi), combinando la modalità di operazione/indirizzamento il numero base di 111 istruzioni viene espanso a 255 su 256 possibili con un codice operativo a byte singolo.

2.1 Fondamenti aritmetici e logici dei computer

2.1.1 Presentazione dei dati in un computer

Per valutare la quantità di informazioni e semplificare il processo di elaborazione, vengono utilizzate unità strutturali di informazioni.

Un bit viene considerato come unità di informazione.

Il bit determina la quantità di informazioni con cui viene allocato uno dei due stati alternativi. In un bit, le cifre 0 e 1 possono rappresentare una cifra binaria di un numero o una variabile logica che assume rispettivamente i valori “falso” o “vero”.

Una sequenza di bit che ha un significato specifico è chiamata campo.

Un campo di 8 bit è chiamato byte.

Un byte, di regola, è l'unità minima (indivisibile) di informazione con cui opera un computer. Tutte le altre unità di informazione sono i suoi derivati ​​(Fig. 2.1).

Riso. 2.1. Unità strutturali di informazione

La principale unità strutturale delle informazioni elaborate da un computer è la parola macchina.

Nei computer moderni, la lunghezza di una parola macchina è solitamente di due byte. Di norma, una parola macchina può rappresentare un numero o un comando. Per garantire la precisione dei calcoli richiesta e risparmiare memoria, la maggior parte dei computer può funzionare anche con parole doppie.

Una sequenza di campi, byte o parole che hanno lo stesso significato forma un array.

Un gruppo di array può essere combinato in un segmento. La quantità di informazioni in array di grandi dimensioni viene stimata utilizzando unità derivate che sono multipli del numero di byte elevati a due (1 KB = 1024 byte = 2 10 byte; 1 MB = 1.048.576 byte = 2 20 byte).

Un computer funziona con due tipi di informazioni: informazioni di controllo e dati numerici.

Per rappresentare i dati numerici in un computer, vengono utilizzate forme naturali e normali di scrittura dei numeri.

In informatica è consuetudine separare la parte intera dalla parte frazionaria mediante un punto. Poiché in questo caso la posizione del punto tra la parte intera e quella frazionaria è chiaramente definita, questa rappresentazione dei numeri è chiamata rappresentazione in virgola fissa (Fig. 2.2).

Riso. 2.2. Rappresentazione in virgola fissa dei numeri

Lo svantaggio di rappresentare numeri in virgola fissa è il loro intervallo ridotto. Pertanto, di norma, in questa forma vengono scritti solo numeri interi. In questo caso non è necessario allocare un campo per la parte frazionaria del numero.

Il massimo valore assoluto di un numero intero rappresentabile in forma naturale sarà il numero determinato dalla formula (2 m – 1) (Fig. 2.3).

La forma normale per scrivere un numero è N = m × q p, dove m è la mantissa del numero (m<1); p - порядок; q - основание системы счисления.

L'ordine indica la posizione in un numero del punto che separa la parte intera del numero dalla parte frazionaria.

Riso. 2.3. Rappresentazione intera

Questa forma di rappresentazione dei numeri è chiamata forma in virgola mobile. In questo caso la parola macchina è divisa in due campi principali. In un campo si scrive la mantissa del numero, nel secondo si indica l'ordine del numero, tenendo conto del segno dell'ordine (caratteristica del numero). Una cifra viene assegnata per rappresentare il segno del numero. La distribuzione dei bit in una parola di quattro byte nel caso in virgola mobile è mostrata nella Figura 2.4.

L'intervallo di rappresentazione dei numeri in virgola mobile è molto più ampio dell'intervallo di rappresentazione dei numeri in virgola fissa. Tuttavia, le prestazioni del computer durante l'elaborazione dei numeri a virgola mobile sono molto inferiori rispetto all'elaborazione dei numeri a virgola fissa. Questo perché quando si lavora con la virgola mobile, ogni operazione richiede tempo per determinare la posizione del punto.

Riso. 2.4. Rappresentazione in virgola mobile

I computer moderni utilizzano entrambe le forme di rappresentazione dei numeri.

2.1.1.1 Rappresentazione dei comandi in un computer

Il programma operativo della macchina, che determina il processo di elaborazione delle informazioni in un computer, è costituito da una sequenza di comandi.

Per comando del computer si intende un'informazione che garantisce la generazione di segnali di controllo affinché la macchina esegua una determinata azione.

Il campo di comando è composto da due parti: operativa e indirizzo. La parte operativa specifica il codice operativo (OPC), che specifica l'azione (aritmetica o logica) che la macchina deve eseguire. La parte indirizzo del comando contiene gli indirizzi degli operandi (valori) coinvolti nell'operazione. L'indirizzo “A” si riferisce al numero (codice digitale) di una parola macchina (o altro campo di memoria del computer), dove sono scritte le informazioni necessarie per eseguire il comando. Il numero di indirizzi specificati in un comando può variare. In base al numero di indirizzi, vengono determinati i seguenti formati di comando: unicast, a due indirizzi, a tre indirizzi e a quattro indirizzi (Fig. 2.5).

Riso. 2.5. Formati di comandi del computer

Un'istruzione a tre indirizzi che esegue un'operazione di addizione, ad esempio, deve contenere un codice operativo di addizione e tre indirizzi. Le azioni eseguite da tale comando sono determinate approssimativamente dalla seguente sequenza:

1) prendere il numero memorizzato al primo indirizzo;

2) prendere il numero memorizzato al secondo indirizzo e aggiungerlo al primo numero;

3) scrivere il risultato dell'addizione al terzo indirizzo.

Nel caso di un comando a due indirizzi, non esiste un terzo indirizzo e il risultato può essere scritto nel secondo indirizzo (con la perdita delle informazioni lì scritte) o lasciato nel sommatore in cui è stata eseguita l'operazione di addizione. Quindi, per liberare il sommatore, è necessario un comando aggiuntivo per riscrivere il numero all'indirizzo richiesto. Quando si sommano due numeri memorizzati negli indirizzi A1 e A2 e si scrive il risultato, ad esempio, in A1 utilizzando un'istruzione a due indirizzi, sono necessarie quattro istruzioni:

1) chiamare all'addizionatore il numero memorizzato all'indirizzo A1;

2) chiamando il numero memorizzato all'indirizzo A2 e sommandolo al primo numero;

3) cancellare il numero all'indirizzo A1;

4) registrando il risultato all'indirizzo A1.

Pertanto, minore è l'indirizzabilità dei comandi del computer, maggiore è il numero di comandi richiesti per compilare lo stesso programma macchina.

Aumentando l'indirizzabilità di un computer, è necessario aumentare la lunghezza della parola macchina per allocare i campi necessari per la parte di indirizzo dei comandi. All'aumentare della quantità di memoria del computer, aumenta la lunghezza del campo richiesto per un indirizzo. Allo stesso tempo, non tutti i comandi utilizzano pienamente i campi indirizzo. Ad esempio, il comando per scrivere un numero a un determinato indirizzo richiede solo un campo indirizzo.

2.1.2 Sistemi numerici

Il metodo di rappresentazione dei numeri utilizzando segni numerici (cifre) è chiamato sistema numerico. Le regole per scrivere e operare i numeri nei sistemi numerici utilizzati nell'informatica digitale determinano i fondamenti aritmetici dei computer digitali.

Componenti del sistema numerico:

1. La base di un sistema numerico è il numero di diverse cifre (simboli) utilizzate per rappresentare un numero.

2. Alfabeto del sistema numerico: simboli e numeri utilizzati per scrivere tutte le cifre di un numero.

3. Regole per scrivere e leggere i numeri.

Esistono due tipi principali di sistemi numerici: non posizionale e posizionale.

Sistemi numerici non posizionali.

I sistemi numerici non posizionali sono caratterizzati dal fatto che il valore di un numero, espresso da un insieme di cifre, è determinato solo dalla configurazione dei simboli digitali e non dipende dalla loro posizione. Un classico esempio di sistema non posizionale è il sistema numerico romano. Ad esempio: ХIX; XXIII.

Sistemi di numerazione posizionale.

I più diffusi sono i sistemi numerici posizionali, in cui il valore di qualsiasi cifra è determinato non solo dalla configurazione del suo simbolo, ma anche dalla posizione (posizione) che occupa nel numero.

Tra i sistemi posizionali si distingue tra sistemi numerici omogenei e misti (eterogenei).

Nei sistemi omogenei, il numero di cifre valide per tutte le posizioni (cifre) di un numero è lo stesso. Un sistema posizionale omogeneo è il sistema numerico decimale generalmente accettato (q = 10), che utilizza dieci cifre da 0 a 9 per scrivere i numeri.

Un esempio di sistema numerico misto è il sistema di conteggio del tempo, in cui vengono utilizzate 60 gradazioni nelle cifre dei secondi e dei minuti e 24 gradazioni nelle cifre delle ore, ecc.

Qualsiasi numero A, scritto in un sistema posizionale omogeneo, può essere rappresentato come la somma di una serie di potenze:

(2.1.)

dove q è la base del sistema numerico; a i - numeri del sistema numerico con base q; i - numero (peso) della posizione (cifra) del numero.

È possibile implementare un numero infinito di sistemi numerici diversi. I computer digitali utilizzano principalmente sistemi posizionali omogenei. Oltre al sistema numerico decimale, nei computer sono ampiamente utilizzati i sistemi con base q, che sono potenze di 2, vale a dire: sistemi numerici binari, ottali, esadecimali.

Quando si utilizzano insieme sistemi numerici diversi, dopo aver scritto il numero si può indicare la base del sistema, ad esempio: 347.42 10; 11012; 235 8, ecc.


Attualmente, nella vita di tutti i giorni, per codificare le informazioni numeriche, viene utilizzato un sistema numerico decimale in base 10, che utilizza 10 elementi di designazione: numeri 0, 1, 2, ... 8, 9. La prima cifra (minore) indica il numero delle unità, nella seconda le decine, nella terza le centinaia, ecc.; in altre parole, in ogni cifra successiva il peso del coefficiente della cifra aumenta di 10 volte.

I dispositivi di elaborazione digitale dell'informazione utilizzano un sistema di numerazione binario con base 2, che utilizza due elementi di designazione: 0 e 1. I pesi dei bit da sinistra a destra dal meno significativo al più significativo aumentano di 2 volte, cioè hanno la seguente sequenza: 8421. In generale, questa sequenza è simile a:

…2 5 2 4 2 3 2 2 2 1 2 0 ,2 -1 2 -2 2 -3 …

e viene utilizzato per convertire un numero binario in un numero decimale. Ad esempio, il numero binario 101011 equivale al numero decimale 43:

2 5 ·1+2 4 ·0+2 3 ·1+2 2 ·0+2 1 ·1+2 0 ·1=43

Nei dispositivi digitali, vengono utilizzati termini speciali per denotare unità di informazione di varie dimensioni: bit, byte, kilobyte, megabyte, ecc.

Morso O cifra binaria determina il valore di un carattere in un numero binario. Ad esempio, il numero binario 101 ha tre bit o tre cifre. Viene chiamata la cifra più a destra, con il peso minore minore, e quello all'estrema sinistra, con il peso maggiore, lo è anziano.

Byte definisce 8 bit unità di informazione, 1 byte = 23 bit, ad esempio 10110011 o 01010111, ecc., 1 kbyte = 2 10 byte, 1 MB = 2 10 kbyte = 2 20 byte.

Per rappresentare numeri a più cifre nel sistema di numerazione binario, è necessario un gran numero di cifre binarie. La registrazione è più semplice se si utilizza il sistema numerico esadecimale.

La base sistema esadecimale numero è il numero 16 = 2 4, che utilizza 16 elementi di notazione: numeri da 0 a 9 e le lettere A, B, C, D, E, F. Per convertire un numero binario in esadecimale, è sufficiente dividere il numero binario numero in gruppi di quattro bit: la parte intera da destra a sinistra, frazionaria - da sinistra a destra del punto decimale. I gruppi esterni potrebbero essere incompleti.

Ciascun gruppo binario è rappresentato da un corrispondente carattere esadecimale (Tabella 1). Ad esempio, il numero binario 0101110000111001 in esadecimale è espresso come 5C39.

Il sistema numerico decimale è più conveniente per l'utente. Pertanto, molti dispositivi digitali, lavorando con numeri binari, ricevono ed emettono numeri decimali all'utente. In questo caso viene utilizzato il codice decimale binario.

Codice BCDè formato sostituendo ciascuna cifra decimale di un numero con una rappresentazione binaria a quattro bit di questa cifra in codice binario (vedere Tabella 1). Ad esempio, il numero 15 è rappresentato come 00010101 BCD (Binary Coded Decimal). In questo caso ogni byte contiene due cifre decimali. Tieni presente che il codice BCD in questa conversione non è un numero binario equivalente a un numero decimale.

1.2 Fondamenti logici dei computer

Viene chiamata la branca della logica matematica che studia le relazioni tra variabili logiche che hanno solo due valori algebra della logica. L'algebra della logica è stata sviluppata dal matematico inglese J. Boole ed è spesso chiamata algebra booleana. L'algebra logica è la base teorica per la costruzione di sistemi di elaborazione delle informazioni digitali. Innanzitutto, sulla base delle leggi dell'algebra logica, viene sviluppata un'equazione logica del dispositivo, che consente di collegare elementi logici in modo tale che il circuito esegua una determinata funzione logica.


Tabella 1 – Codici numerici da 0 a 15

Numero decimale Codici
Binario esadecimale GAV
0 0000 0 000
1 0001 1 0001
2 0010 2 0010
3 0011 3 0011
4 0100 4 0100
5 0101 5 0101
6 0110 6 0110
7 0111 7 0111
8 1000 8 1000
9 1001 9 1001
10 1010 UN 00010000
11 1011 B 00010001
12 1100 C 00010010
13 1101 D 00010011
14 1110 E 00010100
15 1111 F 00010101

1.2.1 Fondamenti di algebra della logica

Diverse variabili booleane possono essere collegate da dipendenze funzionali. Le dipendenze funzionali tra variabili logiche possono essere descritte da formule logiche o tabelle di verità.

In generale, logico formula una funzione di due variabili si scrive come: =F(X 1 , X 2), dove X 1 , X 2 - variabili di input.

IN tavola di verità visualizza tutte le possibili combinazioni (combinazioni) delle variabili di input e i valori corrispondenti della funzione y, risultanti dall'esecuzione di alcune operazioni logiche. Con una variabile, il set completo è composto da quattro funzioni, mostrate nella Tabella 2.


Tabella 2 - Set completo di funzioni per una variabile

X Y1 Y2 Y3 Y4
0 1 0 1 0
1 0 1 1 0

Y1 - Inversione, Y2 - Funzione identica, Y3 - Funzione assolutamente vera e Y4 - Funzione assolutamente falsa.

Inversione(negazione) è una delle funzioni logiche di base utilizzate nei dispositivi di elaborazione delle informazioni digitali.

Con due variabili, il set completo è composto da 16 funzioni, ma non tutte sono utilizzate nei dispositivi digitali.

Le principali funzioni logiche di due variabili utilizzate nei dispositivi di elaborazione digitale dell'informazione sono: disgiunzione (addizione logica), congiunzione (moltiplicazione logica), somma modulo 2 (disequivalenza), freccia di Peirce e tratto di Schaeffer. I simboli delle operazioni logiche che implementano le funzioni logiche di cui sopra di una e due variabili sono riportati nella Tabella 3.


Tabella 3 Nomi e designazioni delle operazioni logiche

L'operazione di inversione può essere eseguita in modo puramente aritmetico: e algebricamente: Da queste espressioni segue che l'inversione X, cioè. complementi X a 1. Da qui deriva un altro nome per questa operazione: aggiunta. Da qui possiamo concludere che la doppia inversione porta all’argomentazione originale, cioè e si chiama la legge della doppia negazione.


Tabella 4 – Tavole di verità delle principali funzioni di due variabili

Disgiunzione Congiunzione Esclusivo o La freccia di Pierce L'ictus di Schaeffer
X1 X2 Y X1 X2 Y X1 X2 Y X1 X2 Y X1 X2 Y
0 0 0 0 0 0 0 0 0 0 0 1 0 0 1
0 1 1 0 1 0 0 1 1 0 1 0 0 1 1
1 0 1 1 0 0 1 0 1 1 0 0 1 0 1
1 1 1 1 1 1 1 1 0 1 1 0 1 1 0

Disgiunzione. A differenza della normale somma aritmetica o algebrica, qui la presenza di due unità dà come risultato uno. Pertanto, quando si denota la sommatoria logica, si dovrebbe dare la preferenza al segno (∨) anziché al segno (+).

Le prime due righe della tavola di verità dell'operazione di disgiunzione ( X 1 = 0) determinare legge dell'addizione con zero: x ∨ 0 = X, e le seconde due righe (x 1 = 1) - legge dell'addizione con unità: X ∨ 1 = 1.

Congiunzione. La tabella 4 mostra in modo convincente l'identità delle operazioni di moltiplicazioni ordinarie e logiche. Pertanto, come segno per la moltiplicazione logica, è possibile utilizzare il segno familiare per la moltiplicazione ordinaria sotto forma di punto.

Determinano le prime due righe della tavola di verità dell'operazione di congiunzione legge della moltiplicazione per zero: X 0 = 0, e i secondi due - legge della moltiplicazione per uno: x·1 = X.

Esclusivo o. La funzione “OR esclusivo” significa quanto segue: in uscita appare uno quando solo un ingresso ne ha uno. Se ce ne sono due o più agli input, o se tutti gli input sono zero, l'output sarà zero.

La dicitura sulla designazione dell'elemento ESCLUSIVO OR “=1” (Figura 1, d) significa semplicemente che la situazione è evidenziata quando agli ingressi è presente una ed una sola unità.

Questa operazione è simile all'operazione di somma aritmetica, ma, come altre operazioni logiche, senza la formazione di un riporto. Ecco perché ha un nome diverso somma modulo 2 e la notazione ⊕, simile alla notazione per la somma aritmetica.

La freccia di Pierce E Il tocco di Schaeffer. Queste operazioni sono inversioni delle operazioni di disgiunzione e congiunzione e non hanno alcuna designazione speciale.

Le funzioni logiche considerate sono semplici o elementari, poiché il valore della loro verità non dipende dalla verità di eventuali altre funzioni, ma dipende solo da variabili indipendenti chiamate argomenti.

I dispositivi informatici digitali utilizzano funzioni logiche complesse sviluppate da funzioni elementari.

Complessoè una funzione logica il cui valore di verità dipende dalla verità di altre funzioni. Queste funzioni sono gli argomenti di questa funzione complessa.

Ad esempio, in una funzione logica complessa gli argomenti sono X 1 ∨X 2 e .

1.2.2 Elementi logici

Per implementare le funzioni logiche nei dispositivi di elaborazione delle informazioni digitali, vengono utilizzati elementi logici. I simboli degli elementi logici che implementano le funzioni discusse sopra sono mostrati nella Figura 1.

Figura 1 – UGO di elementi logici: a) Invertitore, b) OR, c) AND, d) OR esclusivo, e) OR-NOT, f) AND-NOT.


Funzioni logiche complesse vengono implementate sulla base di elementi logici semplici, collegandoli opportunamente per implementare una specifica funzione analitica. Schema funzionale di un dispositivo logico che implementa una funzione complessa, dato nel paragrafo precedente è mostrato nella Figura 2.

Figura 2 – Esempio di implementazione di una funzione logica complessa


Come si può vedere dalla Figura 2, l'equazione logica mostra da quali LE e con quali connessioni può essere creato un dato dispositivo logico.

Poiché l'equazione logica e il diagramma funzionale hanno una corrispondenza biunivoca, è consigliabile semplificare la funzione logica utilizzando le leggi dell'algebra logica e, quindi, ridurre il numero o modificare la nomenclatura delle LE durante la sua implementazione.

1.2.3 Leggi e identità dell'algebra della logica

L'apparato matematico dell'algebra logica consente di trasformare un'espressione logica, sostituendola con una equivalente al fine di semplificare, ridurre il numero di elementi o sostituire l'elemento base.

1 Commutativa: X ∨ Y = Y ∨ X; X · Y = Y · X.

2 Combinativa: X ∨ Y ∨ Z = (X ∨ Y) ∨ Z = X ∨(Y ∨ Z); X Y Z = (X Y) Z = X (Y Z).

3 Idempotenze: X ∨ X = X; X · X = X.

4 Distributiva: (X ∨ Y) Z = X Z ∨ Y Z.

5 Doppio negativo: .

6 Legge della Dualità (Regola di De Morgan):

Per trasformare le formule strutturali, vengono utilizzate una serie di identità:

X ∨ X Y = X; X(X ∨ Y) = X - Regole di assorbimento.

X· Y ∨ X· = X, (X ∨ Y)·(X ∨ ) = X – Regole di incollaggio.

Regole di precedenza delle operazioni logiche.

1 La negazione è l'azione logica della prima fase.

2 La congiunzione è un'azione logica della seconda fase.

3 La disgiunzione è un'azione logica della terza fase.

Se in un'espressione logica ci sono azioni di diverse fasi, allora viene eseguita prima la prima fase, poi la seconda e solo dopo la terza. Qualsiasi deviazione da quest'ordine deve essere indicata tra parentesi.

 

 

Questo è interessante: