The VEX Visual Studio Code Extension has replaced VEXcode Pro V5, which is now end-of-life.
VEXcode Blocks and VEXcode Text remain actively developed and supported for all VEX platforms.
Tipai, kuriuose laikomi skaičiai su kablelio skaičiais – float, double
Šie duomenų tipai dažnai vadinami slankiojo kablelio duomenų tipais. Skaičiai vadinami slankiojo kablelio skaičiais.
plūdės fvar = 50,15; dvigubas dvar = 50,0;
Palyginkite slankiojo kablelio duomenų tipą – float ir double
Skirtumas tarp slankaus ir dvigubo duomenų tipo priklauso nuo kablelio tikslumo.
Remiantis VexOS – ARM 7 specifikacija, plūdė gali užimti 6 arba 7 vietas, o dviguba – 15 arba 16.
float: dabartiniame V5OS valdiklis leidžia iki 8 tikslumo po kablelio.
pvz
float fvar1 = 1,12345670; float fvar2 = 1,12345678;
fval1 skiriasi nuo fvar2,
prieš
float fvar1 = 1,123456780; float fvar2 = 1,123456781;
fval1 bus įvertintas taip pat kaip fvar2.
double: leidžia nustatyti iki 17 skaitmenų po kablelio.
pvz
dvigubas dvar1 = 1,12345678912345678; dvigubas dvar2 = 1,12345678912345670;
dval1 skiriasi nuo dvar2,
prieš
dvigubas dvar1 = 1,123456789123456789; dvigubas dvar2 = 1,123456789123456780;
dval1 bus įvertintas taip pat kaip dvar2.
Nenaudokite „dvigubo“, nebent jums reikia didelio tikslumo
Yra dvi priežastys, kodėl neturėtumėte naudoti „dvigubo“, nebent jums reikia didelio tikslumo:
- Jis užima 2X plūdės tipo.
- Tai užima daug didesnę apdorojimo galią.
Remiantis VexOS – ARM 7 specifikacija, plūdė gali užimti 6 arba 7 vietas, o dviguba – 15 arba 16. Bet kuriuo atveju neturėtumėte pasikliauti paskutinių dvigubų arba plūduriuojančių skaitmenų tikslumu. Jis saugomas labai skirtingai nei „int“ dėl vadinamojo „slankiojo taško skaičiavimo“ (tai nepatenka į šio straipsnio taikymo sritį).
Taigi, jūs galite prarasti tikslumą ties paskutiniais skaičiais po kablelio.
Veikimas dvigubu režimu yra gana brangus, palyginti su plūduriuojančiu skaičiumi, ir daug didesnis nei „sveikasis skaičius“ dėl vadinamųjų slankiojo kablelio skaičiavimų.
Remiantis IEEE standartu, toliau nurodytas patikimesnis diapazonas.
Tipas | Mažiausia teigiama vertė | Didžiausia teigiama vertė | Tikslumo # |
plūdė | 10 -38 x 1,17549 | 10 38 x 3,40282 | 6 skaitmenys |
dvigubai | 10 -308 arba 2.22507 | 10 308 x 1,79769 | 15 skaitmenų |
Ar galite pakeisti primityvius duomenų tipus? - Liejimas
Galima keistis duomenų tipais. Ši technika vadinama „liejimu“. Nors liejimas yra gana įprasta praktika, darykite tai tik tada, kai tai būtina.
Viena iš labiausiai paplitusių praktikų yra keistis char ir int.
Taip yra todėl, kad jie abu reiškia sveikąsias reikšmes su viena išimtimi:
- „int“ yra 4 baitai (arba 8 baitai kai kuriuose kompiliatoriuose)
- „char“ yra tik 1 baitas.
Taigi, pvz
char aVal = 100; int iVal = aVal; // numanomas liejimas
arba
int iVal = (char) aVal; // aiškus liejimas.
Atsargiai dėl numanomo sutrumpinimo:
pvz
Kita įprasta praktika yra mainai int ir float
plūdės fVal = 5,486; plūduriuojanti frakcija = fVal – (int)fVal; //tai: 5.486–5
Atsargiai dėl numanomo sutrumpinimo:
pvz
int iVal = 50; float fVal = iVal / 100;
dabar fVal = 0,0, NE 0,5.
Visiškai gerai pasinaudoti numanomu sutrumpinimo pranašumais, kuris kai kuriais atvejais dažnai yra svarbi operacijų dalis. Tačiau jūs turite įsitikinti, kad naudojate šią techniką pagal dizainą.
Jei nenorite, kad būtų numanomas sutrumpinimas, turite atlikti aiškų liejimą:
- numanomas liejimas:
float fVal = iVal / 100,0;
- aiškus liejimas:
float fVal = (plūdė) iVal / 100