Peldošo un dubulto mainīgo izveide programmā VEXcode Pro V5

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.

Veidi, kas satur skaitļus ar zīmēm aiz komata – peldošais, dubultais

Šos datu tipus bieži sauc par peldošā komata datu tipiem. Skaitļi tiek saukti par peldošā komata skaitļiem.

pludiņa fvar = 50,15;
dubultā dvar = 50,0;

Salīdziniet peldošā komata datu tipu – peldošais un dubultais

Atšķirība starp peldošo un dubulto datu tipu ir saistīta ar precizitāti līdz decimālzīmju skaitam.

Pamatojoties uz VexOS – ARM 7 specifikāciju, pludiņš var izturēt 6 vai 7 vietas, bet dubultais var apstrādāt 15 vai 16 vietas.

pludiņš: pašreizējā V5OS kontrolleris, šķiet, pieļauj precizitāti līdz 8 zīmēm aiz komata.

piem

peldošais fvar1 = 1,12345670;
peldošais fvar2 = 1,12345678;

fval1 atšķiras no fvar2,

vs

peldošais fvar1 = 1,123456780; 
peldošais fvar2 = 1,123456781;

fval1 tiks novērtēts tāpat kā fvar2.

dubultā: nodrošina līdz 17 zīmēm aiz komata.

piem

dubultā dvar1 = 1,12345678912345678;
dubultā dvar2 = 1,12345678912345670;

dval1 atšķiras no dvar2,

vs

dubultā dvar1 = 1,123456789123456789;
dubultā dvar2 = 1,123456789123456780;

dval1 tiks novērtēts tāpat kā dvar2.


Neizmantojiet "dubulto", ja vien jums nav nepieciešama augsta precizitāte

Ir divi iemesli, kāpēc nevajadzētu lietot "dubulto", ja vien jums nav nepieciešama augsta precizitāte:

  1. Tas aizņem 2X pludiņa veidu.
  2. Tas aizņem daudz lielāku apstrādes jaudu.

Pamatojoties uz VexOS – ARM 7 specifikāciju, pludiņš var ieņemt 6 vai 7 vietas, bet dubultais – 15 vai 16. Nevienā gadījumā jums nevajadzētu paļauties uz pēdējo ciparu precizitāti dubultā vai peldošā režīmā. Tas tiek glabāts ļoti atšķirīgi no “int” glabāšanas, ko sauc par “peldošā punkta aprēķinu” (kas neietilpst šī raksta darbības jomā).

Tādējādi jūs, iespējams, zaudēsit precizitāti pēdējās zīmēs aiz komata.

Darbība dubultā ir diezgan dārga, salīdzinot ar peldošo, un daudz augstāka nekā “vesels skaitlis”, ko sauc par peldošā komata aprēķiniem.

Pamatojoties uz IEEE standartu, tālāk norādītais ir drošākā diapazonā.

Tips Mazākā pozitīvā vērtība Lielākā pozitīvā vērtība Precizitātes #
peldēt 10 -38 x 1,17549 10 38 x 3,40282 6 cipari
dubultā 10 -308 vai 2.22507 10  x 1,79769 15 cipari

Vai varat apmainīties ar primitīviem datu veidiem? - Liešana

Ir iespējams apmainīties ar datu veidiem. Šo paņēmienu sauc par liešanu. Lai gan liešana ir diezgan izplatīta prakse, dariet to tikai tad, ja tas ir nepieciešams. 

Viena no visizplatītākajām praksēm ir char un int apmaiņa.

Tas ir tāpēc, ka tie abi apzīmē veselas vērtības ar vienu izņēmumu: 

  • "int" satur 4 baitus (vai 8 baitus dažos kompilatoros)
  • “char” satur tikai 1 baitu.

Tātad, piem

char aVal = 100;
int iVal = aVal; // netiešā liešana

vai

int iVal = (char) aVal; // skaidra liešana.

Uzmanību par netiešu saīsināšanu:

piem

Diagramma, kas ilustrē V5 robotikas sistēmas programmēšanas funkcijas, izceļot galvenās sastāvdaļas un savienojumus efektīvai robotu programmēšanai.

Vēl viena izplatīta prakse ir apmaiņa ar int un float
pludiņa fVal = 5,486;
peldošā daļa = fVal - (int)fVal; //tas ir: 5.486–5

Uzmanību par netiešu saīsināšanu:

piem

int iVal = 50;
peldēt fVal = iVal / 100;

tagad fVal = 0,0, NEVIS 0,5.

Ir pilnīgi pareizi izmantot netiešās saīsināšanas priekšrocības, kas dažos scenārijos bieži ir svarīga darbību daļa. Tomēr jums ir jāpārliecinās, ka izmantojat šo paņēmienu pēc dizaina.

Ja nevēlaties, lai tiktu veikta netieša saīsināšana, jums ir jāveic tieša apraide:

  • netiešā liešana: pludiņš fVal = iVal / 100,0;
  • skaidra liešana: pludiņš fVal = (peldēt) iVal / 100

For more information, help, and tips, check out the many resources at VEX Professional Development Plus

Last Updated: