PICBASIC


 

*           MATEMATIČKI OPERATORI

 

PICBasic koristi matematičke operatore date u donjoj tabeli:

 

Operator

Opis

Operator

Opis

+

sabiranje

&/

logičko NAND

-

oduzimanje

|/

logičko NOR

*

moženje

^/

logičko XNOR

**

rezultat je u viših 16 bita

ABS

apsolutna vrednost

*/

rezultat je u srednjih 16 bita

COS

kosinus ugla

/

delenje

DCD

dekodovanje bita

//

ostatak delenja

DIG

vrednost cifre decimalnog broja

<< 

pomeranje u levo

MAX

maksimum broja

>> 

pmeranje u desno

MIN

minimum broja

=

dodela vrednosti

NCD

prioritetno kodiranje

&

logičko AND

REV

obrtanje bita

|

logičko OR

SIN

sinus ugla

^

logičko XOR

SQR

kvadratni koren

~

logičko NOT

DIV32

31-bit x 15-bita delenje

 

MNOŽENJE

Podrazumevano množi 16 x 16 bitne brojeve. Operator '*' standardno vraća nižih 16-bita od 32-bitnog internog rezultata. Operator '**' vraća viših 16-bita.

W1 = W0 * 1000 'izmnozi W0 sa 1000 i stavi u rec W1

W2 = W0 * 1000 'izmnozi W0 sa 1000 i stavi visih 16-bita u rec W2

U ovom primeru dat je način množenje da se dobije 32-bitna vrednost rezultata, tj. rezultat se nalazi u dve reči: W1 - niži 16-bita i W2 - viših 16-bita.

 

DELENJE

Podrazumevano deli brojeve sa 16-bita. Operator '/'  vraća 16-bitni rezultat delenja a operator '//'  vraća kao rezultat ostatak delenja.

W1 = W0 / 1000  'deli W0 sa 1000 i stavi u W1

W2 = W0 // 1000 'deli W0 sa 1000 i ostatak delenje stavi u W2

 

POMERANJE - SHIFT

Vrši pomeranje u levo kada je operator '<<' ili pomeranje u desno kada je operator '>>'. Novi bitovi koji ulaze sa strane imaju vrednost 0.

B0 = B0 << 3 'pomera sadrzaj B0 za 3 mesta u levo, sto je kao mnozenje sa 8

W1 = W0 >> 1 'pomera sadrzaj W0 za 1 mesta u desno, sto je kao delenje sa 2

 

ABS

Vraća aposolutnu vrednost broja. Ako se ABS primeni na promenljivu koja je opisana kao bajt i ako je veća od 127 vraća rezultat 256, a u slučaju reči vraća rezultat 65536.

 

COS

Vraća 8-bitnu vrednost kosinusa. Rezultat je u komplementu dva odnosno u opsegu -127 do 127. Zbog toga je neophodno koristiti lookup tabelu da bi odredili rezultat. Ugao se umesto uobičajenih 0 - 360° kreće u granicama 0 - 255°.

 

DCD

Vraća dekodiranu vrednost na datom bitu unutar broja. Ako se bit nalazi u opsegu 0 - 15 taj bit će biti postavljen na 1 a svi ostali na nulu.

B0 = DCD 2 'B0 imace sadrzaj %00000100

DIG

Vraća zadatu cifru decimalnog broja. Broj cifre je od 0 do 3 pri čemu je 0 krajnja cifra desno a 3 krajnja cifra levo.

B1 = 1422

B0 = DIG 0 'B0 imace sadrzaj 2

B0 = DIG 2 'B0 imace sadrzaj 4

B0 = DIG 3 'B0 imace sadrzaj 1

MAX I MIN

Ovi operatori koriste se kada treba vratiti jednu od vrednosti koje se porede. Ako se poredi broj 10 i 17 operator max vratiće 17 a operator min vratiće 10.

 

NCD

NCD daje vrednost operanda koja je kodovana kodom prioriteta. On daje položaj prve jedinice na koju naiđe sa leve strane.

B0 = NCD %01001000 'sadrzaj B0 je 7

 

REV

REV obrće redosled najnižih bitova operanda, pri čemu broj bita koji se obrću mogu da se kreću od 1 do 16.

B0 = %10101100 REV 4 'sadrzaj B0 je %10100011

SIN

SIN vraća 8-bitnu vrednost sinusa ugla. Vrede ista pravila kao i za kosinus.

 

SQR

SQR vraća 8-bitnu vrednost  kvadratnog korena i rezultat smešta u promenljivu na nivou bajta.

 

LOGIČKI OPERATORI NAD BITOVIMA

Logički opeatori primenju se nad svakim pojedinačnim bitom broja.

B0 = ~%10101100 'logicko NOT dace %01010011

 

OPERATORI POREĐENJA

Za poređenje operanada mogu se koristiti sledeći operatori poređenja dati u sledećoj tabeli.

 

Operator

Opis

= ili ==

jednako

<> ili !=

različito

< 

manje

> 

veće

<=

manje ili jednako

>=

veće ili jednako delenje

 

http://vojo.milanovic.org
© Copyright, 2004 Milanović Vojo 
All right reserved