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.
ദശാംശ സ്ഥാനങ്ങളുള്ള സംഖ്യകളെ ഉൾക്കൊള്ളുന്ന തരങ്ങൾ - ഫ്ലോട്ട്, ഇരട്ട
ഈ ഡാറ്റ തരങ്ങളെ പലപ്പോഴും ഫ്ലോട്ടിംഗ്-പോയിന്റ് ഡാറ്റ തരങ്ങൾ എന്ന് വിളിക്കുന്നു. ഈ സംഖ്യകളെ ഫ്ലോട്ടിംഗ്-പോയിന്റ് സംഖ്യകൾ എന്ന് വിളിക്കുന്നു.
ഫ്ലോട്ട് fvar = 50.15; ഇരട്ട dvar = 50.0;
ഫ്ലോട്ടിംഗ്-പോയിന്റ് ഡാറ്റ തരം താരതമ്യം ചെയ്യുക - ഫ്ലോട്ടും ഡബിളും
ഫ്ലോട്ട് ഡാറ്റാ തരവും ഇരട്ട ഡാറ്റാ തരവും തമ്മിലുള്ള വ്യത്യാസം ദശാംശ സ്ഥാനങ്ങളുടെ # ന്റെ കൃത്യതയെക്കുറിച്ചാണ്.
VexOS – ARM 7 സ്പെസിഫിക്കേഷൻഅനുസരിച്ച്, ഫ്ലോട്ടിന് 6 അല്ലെങ്കിൽ 7 സ്ഥലങ്ങൾ കൈകാര്യം ചെയ്യാൻ കഴിയും, ഡബിളിന് 15 അല്ലെങ്കിൽ 16 സ്ഥലങ്ങൾ കൈകാര്യം ചെയ്യാൻ കഴിയും.
ഫ്ലോട്ട്: നിലവിലുള്ള V5os-ൽ, കൺട്രോളർ 8 ദശാംശ സ്ഥാനങ്ങൾ വരെ കൃത്യത അനുവദിക്കുന്നതായി തോന്നുന്നു.
ഉദാ.
ഫ്ലോട്ട് fvar1 = 1.12345670; ഫ്ലോട്ട് fvar2 = 1.12345678;
fval1 എന്നത് fvar2 ൽ നിന്ന് വ്യത്യസ്തമാണ്,
vs
ഫ്ലോട്ട് fvar1 = 1.123456780; ഫ്ലോട്ട് fvar2 = 1.123456781;
fval1 നെ fvar2 പോലെ തന്നെ വിലയിരുത്തും.
ഇരട്ടി: 17 ദശാംശ സ്ഥാനങ്ങൾ വരെ കൃത്യത അനുവദിക്കുന്നു.
ഉദാ.
ഇരട്ട dvar1 = 1.12345678912345678; ഇരട്ട dvar2 = 1.12345678912345670;
dval1, dvar2 ൽ നിന്ന് വ്യത്യസ്തമാണ്,
vs
ഇരട്ട dvar1 = 1.123456789123456789; ഇരട്ട dvar2 = 1.123456789123456780;
dval1, dvar2 പോലെ തന്നെ വിലയിരുത്തപ്പെടും.
ഉയർന്ന കൃത്യത ആവശ്യമില്ലെങ്കിൽ "ഇരട്ട" ഉപയോഗിക്കരുത്.
ഉയർന്ന കൃത്യത ആവശ്യമില്ലെങ്കിൽ "ഇരട്ട" ഉപയോഗിക്കാതിരിക്കാൻ രണ്ട് കാരണങ്ങളുണ്ട്:
- ഇത് 2X ഫ്ലോട്ട് തരം ഉപയോഗിക്കുന്നു.
- ഇത് വളരെ ഉയർന്ന പ്രോസസ്സിംഗ് പവർ ഉപയോഗിക്കുന്നു.
VexOS – ARM 7 സ്പെസിഫിക്കേഷൻഅനുസരിച്ച്, ഒരു ഫ്ലോട്ടിന് 6 അല്ലെങ്കിൽ 7 സ്ഥാനങ്ങൾ ചെയ്യാൻ കഴിയും, ഒരു ഡബിളിന് 15 അല്ലെങ്കിൽ 16 സ്ഥാനങ്ങൾ കൈകാര്യം ചെയ്യാൻ കഴിയും. രണ്ട് സാഹചര്യങ്ങളിലും, നിങ്ങൾ ഇരട്ട അക്കത്തിലോ ഫ്ലോട്ടിലോ അവസാന അക്കങ്ങളുടെ കൃത്യതയെ ആശ്രയിക്കരുത്. "ഫ്ലോട്ട്-പോയിന്റ് കണക്കുകൂട്ടൽ" (ഈ ലേഖനത്തിന്റെ പരിധിക്ക് പുറത്തുള്ളതാണ്) എന്ന് വിളിക്കപ്പെടുന്ന ഒന്ന് കാരണം ഇത് ഒരു "int" സംഭരിക്കുന്നതിൽ നിന്ന് വളരെ വ്യത്യസ്തമായി സംഭരിക്കപ്പെടുന്നു.
അതിനാൽ, അവസാനത്തെ കുറച്ച് ദശാംശ സ്ഥാനങ്ങളിൽ നിങ്ങൾക്ക് കൃത്യത നഷ്ടപ്പെട്ടേക്കാം.
ഫ്ലോട്ടിനെ അപേക്ഷിച്ച് ഡബിളിലെ പ്രവർത്തനം വളരെ ചെലവേറിയതാണ്, കൂടാതെ ഫ്ലോട്ടിംഗ്-പോയിന്റ് കണക്കുകൂട്ടലുകൾ എന്ന് വിളിക്കപ്പെടുന്ന ഒന്ന് കാരണം "പൂർണ്ണസംഖ്യ"യേക്കാൾ വളരെ കൂടുതലാണ്.
IEEE മാനദണ്ഡത്തെ അടിസ്ഥാനമാക്കി, ഇനിപ്പറയുന്നവ കൂടുതൽ വിശ്വസനീയമായ പരിധിയിലാണ്.
| ടൈപ്പ് ചെയ്യുക | ഏറ്റവും ചെറിയ പോസിറ്റീവ് മൂല്യം | ഏറ്റവും വലിയ പോസിറ്റീവ് മൂല്യം | കൃത്യതയുടെ # ശതമാനം |
|---|---|---|---|
| ഫ്ലോട്ട് | 10 -38 x 1.17549 | 10 38 x 3.40282 | 6 അക്കങ്ങൾ |
| ഇരട്ടി | 10 -308 അല്ലെങ്കിൽ 2.22507 | 10 308 x 1.79769 | 15 അക്കങ്ങൾ |
പ്രിമിറ്റീവ് ഡാറ്റ തരങ്ങൾ പരസ്പരം മാറ്റാൻ കഴിയുമോ? - കാസ്റ്റിംഗ്
ഡാറ്റ തരങ്ങൾ പരസ്പരം മാറ്റാൻ കഴിയും. ഈ സാങ്കേതികതയെ "കാസ്റ്റിംഗ്" എന്ന് വിളിക്കുന്നു. കാസ്റ്റിംഗ് ഒരു സാധാരണ രീതിയാണെങ്കിലും, അത്യാവശ്യമെങ്കിൽ മാത്രം അത് ചെയ്യുക.
ഏറ്റവും സാധാരണമായ രീതികളിൽ ഒന്ന് char ഉം int ഉം കൈമാറ്റം ചെയ്യുക എന്നതാണ്.
കാരണം അവ രണ്ടും ഒരു അപവാദത്തോടെ പൂർണ്ണസംഖ്യ മൂല്യങ്ങളെ പ്രതിനിധീകരിക്കുന്നു:
- “int” ൽ 4-ബൈറ്റുകൾ (അല്ലെങ്കിൽ ചില കംപൈലറുകളിൽ 8-ബൈറ്റുകൾ) അടങ്ങിയിരിക്കുന്നു.
- “char”-ൽ 1-ബൈറ്റ് മാത്രമേ അടങ്ങിയിട്ടുള്ളൂ.
അപ്പോൾ, ഉദാ.
char aVal = 100; int iVal = aVal; // പരോക്ഷമായ കാസ്റ്റിംഗ്
അല്ലെങ്കിൽ
int iVal = (char) aVal; // വ്യക്തമായ കാസ്റ്റിംഗ്.
വ്യക്തമായ വെട്ടിച്ചുരുക്കലിനുള്ള ജാഗ്രത:
ഉദാ.
ഇന്റും ഫ്ലോട്ടും കൈമാറ്റം ചെയ്യുന്നതാണ് മറ്റൊരു സാധാരണ രീതി.
ഫ്ലോട്ട് fVal = 5.486; ഫ്ലോട്ട് ഫ്രാക്ഷൻ = fVal - (int)fVal; //ഇത് ചെയ്യുന്നത്: 5.486 - 5
വ്യക്തമായ വെട്ടിച്ചുരുക്കലിനുള്ള ജാഗ്രത:
ഉദാ.
ഇന്റ് iVal = 50; ഫ്ലോട്ട് fVal = iVal / 100;
ഇപ്പോൾ fVal = 0.0, 0.5 അല്ല.
ചില സാഹചര്യങ്ങളിൽ പ്രവർത്തനങ്ങളുടെ ഒരു പ്രധാന ഭാഗമായ ഇംപ്ലിസിറ്റ് ട്രങ്കേഷന്റെ പ്രയോജനം നേടുന്നത് തികച്ചും നല്ലതാണ്. എന്നിരുന്നാലും, നിങ്ങൾ ഡിസൈൻ പ്രകാരം ഈ സാങ്കേതികവിദ്യ ഉപയോഗിക്കുന്നുണ്ടെന്ന് ഉറപ്പാക്കേണ്ടതുണ്ട്.
വ്യക്തമായ വെട്ടിച്ചുരുക്കൽ നടക്കാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നില്ലെങ്കിൽ, നിങ്ങൾ വ്യക്തമായ കാസ്റ്റിംഗ് നടത്തേണ്ടതുണ്ട്:
- ഇംപ്ലിസിറ്റ് കാസ്റ്റിംഗ്:
ഫ്ലോട്ട് fVal = iVal / 100.0; - വ്യക്തമായ കാസ്റ്റിംഗ്:
ഫ്ലോട്ട് fVal = (ഫ്ലോട്ട്) iVal / 100