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:
- 2X float tipini kaplar.
- Ç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
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