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