VEXcode Pro V5'te Float ve Double Değişkenler Oluşturma

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.

Ondalık basamaklı sayıları tutan türler – float, double

Bu veri türlerine genellikle kayan nokta veri türleri adı verilir. Sayılara kayan noktalı sayıları denir.

kayan nokta fvar = 50,15;
çift dvar = 50,0;

Kayan nokta veri türünü karşılaştırın – float ve double

Float ve double veri türleri arasındaki fark tamamen ondalık basamakların sayısındaki hassasiyetle ilgilidir.

VexOS – ARM 7 spesifikasyonunagöre, şamandıra 6 veya 7 yeri işleyebilir, çift ise 15 veya 16 yeri işleyebilir.

float: Mevcut V5o'larda, denetleyici 8'e kadar ondalık basamağa kadar hassasiyete izin veriyor gibi görünüyor.

Örneğin

kayan nokta fvar1 = 1,12345670;
float fvar2 = 1,12345678;

fval1, fvar2'den farklıdır,

vs

kayan nokta fvar1 = 1,123456780; 
float fvar2 = 1,123456781;

fval1, fvar2 ile aynı şekilde değerlendirilecektir.

double: 17 ondalık basamağa kadar hassasiyete izin verir.

Örneğin

çift ​​dvar1 = 1,12345678912345678;
çift dvar2 = 1,12345678912345670;

dval1 dvar2'den farklıdır,

vs

çift ​​dvar1 = 1,123456789123456789;
çift dvar2 = 1,123456789123456780;

dval1, dvar2 ile aynı şekilde değerlendirilecektir.


Yüksek hassasiyete ihtiyacınız yoksa "double" kullanmayın

Yüksek hassasiyete ihtiyacınız olmadığı sürece "çift" kullanmamanızın iki nedeni vardır:

  1. 2X float tipini kaplar.
  2. Çok daha yüksek işlem gücü gerektirir.

VexOS – ARM 7 spesifikasyonunagöre, bir şamandıra 6 veya 7 yeri, bir çift ise 15 veya 16 yeri işleyebilir. Her iki durumda da, double veya float'taki son rakamların doğruluğuna güvenmemelisiniz. "Kayan nokta hesaplaması" (bu makalenin kapsamı dışındadır) adı verilen bir şey nedeniyle "int" depolamaktan çok farklı şekilde depolanır.

Bu nedenle son birkaç ondalık basamağın doğruluğunu kaybedebilirsiniz.

Double işlemi, float işlemine kıyasla oldukça maliyetlidir ve kayan nokta hesaplamaları adı verilen bir şey nedeniyle "tamsayı" işleminden çok daha yüksektir.

IEEE standardına göre aşağıdakiler daha güvenilir bir aralıktadır.

Tip En Küçük Pozitif Değer En Büyük Pozitif Değer Hassasiyet Sayısı
batmadan yüzmek 10 -38 x 1,17549 10 38 6 hane
çift 10 -308 veya 2,22507 10 308 15 hane

İlkel veri tiplerini birbiriyle değiştirebilir misiniz? - Döküm

Veri türlerini değiştirmek mümkündür. Bu tekniğe “Döküm” denir. Döküm oldukça yaygın bir uygulama olsa da, bunu yalnızca gerekliyse yapın. 

En yaygın uygulamalardan biri char ve int'i değiştirmektir.

Bunun nedeni, her ikisinin de bir istisna dışında tam sayı değerlerini temsil etmesidir: 

  • “int” 4 bayt (veya bazı derleyicilerde 8 bayt) içerir
  • “char” yalnızca 1 bayt içerir.

Yani örneğin

karakter aVal = 100;
int iVal = aVal; // örtülü atama

veya

int iVal = (char) aVal; // açık döküm.

Örtülü kesmeye karşı uyarı:

Örneğin

V5 robotik sisteminin programlama özelliklerini gösteren, etkili robot programlama için temel bileşenleri ve bağlantıları vurgulayan diyagram.

Bir diğer yaygın uygulama ise int ve float'ı değiştirmektir
kayan nokta fVal = 5,486;
kayan nokta = fVal - (int)fVal; //şunu yapar: 5,486 - 5

Örtülü kesmeye karşı uyarı:

Örneğin

int iVal = 50;
float fVal = iVal / 100;

şimdi fVal = 0,0, 0,5 DEĞİL.

Bazı senaryolarda genellikle operasyonların önemli bir parçası olan örtülü kesmeden faydalanmak kesinlikle iyidir. Ancak bu tekniği tasarım gereği kullandığınızdan emin olmanız gerekir.

Örtülü kesmenin gerçekleşmesini istemiyorsanız, açık atama yapmanız gerekir:

  • örtülü dönüşüm: float fVal = iVal / 100,0;
  • açık atama: float fVal = (float) iVal / 100

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

Last Updated: