Tipuri de date primitive numerice intregi, operatori aritmetici

In aceasta lectie vom vorbi despre tipurile primitive de date numerice intregi si cativa operatori folositi pentru a putea face operatii cu ele. Se numesc primitive pentru ca aceste tipuri stau la baza oricarui program Java. Totul are la baza aceste tipuri primitive.

Pentru a pastra valori numerice intregi in cadrul programelor Java exista 4 tipuri de date disponibile:
Nume Biti Valoare minima Valoare maxima Valoare implicita
byte 8 -28 (-128) +28-1 (+127) 0
short 16 -216 (-32768) +216-1 (+32767) 0
int 32 -232 +232-1 0
long 64 -264 +264-1 0

Cel mai folosit tip este int, urmat de long pentru cazurile cand plaja de valori a lui int nu e suficienta (undeva peste 2,000,000,000). Celelalte tipuri sunt folosite mai curand pentru situatii cand e nevoie ca anumite structuri de date sa ocupe mai putin spatiu in memorie sau cand se lucreaza cu date care se gasesc de la inceput la nivel de byte.

Pentru a putea face operatii aritmetice cu variabile de tip numeric exista urmatorii operatori de baza:
Operator Semnificatie Tip Actiune
+ Adunare Aritmetic Returneaza suma dintre operandul din stanga si din dreapta sa
- Scadere Aritmetic Returneaza diferenta dintre operandul din stanga si din dreapta sa
* Inmultire Aritmetic Returneaza produsul dintre operandul din stanga si din dreapta sa
/ Impartire Aritmetic Returneaza rezultatul impartirii dintre operandul din stanga si din dreapta sa
% Modulo Aritmetic Returneaza restul impartirii intregi dintre operandul din stanga si din dreapta sa
= Asignare Asignare Asigneaza variabilei din stanga sa valoarea expersiei din dreapta sa

Programul urmator va exemplifica lucrul cu tipurile intregi si operatii aritmetice asupra lor. Scopul lui este de a citi doua numere intregi de la tastatura si a afisa pe ecran suma lor.


Spre deosebire de sirurile de caractere care se citesc cu metoda nextLine() numerele intregi se citesc cu metoda nextInt(). Singura diferenta intre acestea este tipul de date returnat, prima metoda returnand String iar cea de-a doua int.

La fel ca exemplul precedent cu citirea String-urilor la linia int number1 = scanner.nextInt(); in variabila number1 se va salva primul numar introdus, iar mai jos la linia int number2 = scanner.nextInt(); in variabila number2 se va salva al doilea numar introdus de la tastatura. Apoi la linia int sum = number1 + number2; se efectueaza practic operatia de adunare conform operatorului + intre valorile din number1 si number2 iar rezultatul acestei operatii se va asigna (se va stoca) in variabila sum definita chiar la aceasta linie.

Pe linia urmatoare se afiseaza rezultatul cu System.out.println("Suma celor doua numere este: " + sum);.

Observati faptul ca operatorul + actioneaza in acest caz ca si concatenare de siruri, atata timp cat primul operand e de tip String al doilea va fi convertit initial la String si apoi se va efectua concatenarea intre celelalte doua. Acest lucru il face automat Java.

In caz ca se doreste calcularea unei expresii mai complexe se poate altera ordinea operatiilor cu ajutorul parantezelor rotunde (). De exemplu daca avem variabilele a, b si c si am vrea sa il inmultim pe a cu suma dintre b si c atunci ar trebui sa scriem expresia: a * (b + c), caz in care se va efectua mai intai adunarea si apoi rezultatul adunarii se va inmulti cu a. Altfel, fara paranteze s-ar fi mers pe ordinea operatiilor standard din matematica, respectiv s-ar fi inmultit initial a cu b iar rezultatul s-ar fi adunat cu c.

Este momentul sa arati ce ai invatat. Rezolva testul TR3 pentru a-ti verifica cunostintele dobandite pana acum.