Peamine erinevus - ujuk vs topelt
Programmeerimisel on vaja andmeid salvestada. Andmed salvestatakse mällu. Andmeid salvestavaid mälukohti nimetatakse muutujateks. Igasse mälukohta saab salvestada teatud tüüpi andmeid. Iga andmetüübi mälumaht on erinev. Programmeerimiskeeltes nagu Python ei pea programmeerija muutuja tüüpi deklareerima. Programmeerimiskeeltes nagu Java peaks programmeerija deklareerima muutuja tüübi. On mitmeid andmetüüpe, nagu char, int, float ja double. Andmetüüpi char kasutatakse ühe märgi väärtuse salvestamiseks. Int andmetüüpi kasutatakse arvväärtuste salvestamiseks ilma kümnendkohtadeta. Ujuk- ja topeltandmetüüpe kasutatakse arvväärtuste salvestamiseks kümnendkohtadega. Selles artiklis käsitletakse ujuki ja topelt erinevust. Peamine erinevus ujuki ja kahekordse vahel on see, et ujuk on ühe täpsusega 32-bitine IEEE 754 ujukoma andmetüüp, samas kui topelt on kahekordse täpsusega 64-bitine IEEE 754 ujukoma andmetüüp.
SISU
1. Ülevaade ja peamine erinevus
2. Mis on ujuk
3. Mis on topelt
4. Ujuki ja topelt sarnasused
5. Kõrvuti võrdlus - ujuk vs kahekordne tabelina
6. Kokkuvõte
Mis on ujuk?
Ujuk on ühe täpsusega 32-bitine hõljuk. See on eelnevalt määratletud andmetüüp, mida toetavad programmeerimiskeeled, näiteks Java. Ujukmuutuja deklareerimiseks kasutatakse märksõna „ujuk”. Seega ei saa seda kasutada identifikaatorinimede jaoks, näiteks meetodinimed ja muutujate nimed. Vaadake allolevat programmi.
Joonis 01: Java-programm ujukandmetüübiga
Vastavalt ülaltoodud programmile on arv muutuja, mis suudab salvestada ujukoma numbri. Siin kasutatakse -20,5 asemel -20,5f. -20,5 on kahekordne literaal. Kompilaatori tähistamiseks väärtuse ujukina salvestamiseks peaks programmeerija kirjutama f või F.
Mis on topelt?
Topel on kahekordse täpsusega 64-bitine ujuk. See on etteantud andmetüüp. Topeltmuutuja deklareerimiseks kasutatakse märksõna "topelt". Seetõttu ei saa seda kasutada identifikaatorinimede jaoks, näiteks meetodinimed ja muutujate nimed. Vaadake allolevat programmi.
Joonis 02: Java-programm kahekordse andmetüübiga
Vastavalt ülaltoodud programmile on number double tüüpi muutuja. Numbri printimine annab väljundiks -20,5. Väärtuse salvestamiseks kulub mälus 64 bitti. Kui programmeerija on kirjutatud -20,5, loetakse seda topelt. Ta võib selle kirjutada ka kui -20,5d. 'D' kirjutamine on vabatahtlik.
Tüüpide ülekandmist saab teha andmetüüpidele. See on ühe andmetüübi teisendamine teiseks andmetüübiks. Kui määrate väiksemale andmetüübile suurema andmetüübi, pole ülekandmist vaja. Laienemine toimub baidi, lühikese, int, pika, ujuki, topeltjärjekorras. Kui määrate väiksemale andmetüübile suurema andmetüübi, on vaja teha ülekandmine.
Joonis 03: Valamine
Vastavalt ülaltoodud programmile on num1 ja num2 ujukandmetüübid. Summaarne summa määratakse muutujale. See on ujuk. Kuna ujuk on kahekordse andmetüübiga võrreldes väiksem andmetüüp, saab selle ilma tüübiülekandeta otse topeltmuutuja numbrile omistada.
X ja y võivad salvestada topelttüüpe. Summeerimine määratakse muutujale z. See mahutab ka topelt. Tüübi ülekandmine on vajalik suurema andmetüübi määramiseks väiksemale andmetüübile. Seetõttu on topeltväärtuse salvestamiseks ujukmuutujaks vaja teha tüüpvalu, kuna topelt on suurem andmetüüp kui ujuk.
Millised on ujuki ja topelt sarnasused?
- Nii ujuk kui ka topelt on eelnevalt määratletud andmetüübid, mida toetavad programmeerimiskeeled, näiteks Java.
- Nii ujuk- kui ka topelttüüpe ei kasutata selliste täpsuste jaoks nagu valuuta.
Mis vahe on ujuki ja topelt?
Erinev artikkel keskel enne tabelit
ujuk vs topelt |
|
Ujuk on ühe täpsusega 32-bitine IEEE 754 ujukomaandmete tüüp. | Double on topelt täpsusega 64-bitine IEEE 754 ujukomaandmete tüüp. |
Baitide arv | |
Ujuki pikkus on 4 baiti. | Duubli pikkus on 8 baiti. |
Vaikeväärtused | |
Ujuki vaikeväärtus on 0,0f. | Topeli vaikeväärtus on 0,0d. |
Märksõna | |
Ujuva väärtuse deklareerimiseks kasutatakse märksõna „ujuk”. | Märksõna „topelt” kasutatakse topeltväärtuse deklareerimiseks. |
Vajalik mälu | |
Ujuk vajab vähem mälu kui topelt. | Topelt nõuab rohkem mälu kui ujukit. |
Kokkuvõte - ujuk vs topelt
Programmeerimisel on vaja andmeid salvestada. Need andmed salvestatakse mälu asukohtadesse ja neid nimetatakse muutujateks. Iga muutuja salvestab teatud tüüpi andmeid. On andmetüüpe nagu int, char, double ja float jne. Selles artiklis käsitleti kahe ujuki ja topelt andmetüübi erinevust. Ujuki ja kahekordse erinevus seisneb selles, et ujuk on andmetüüp, mis on ühe täpsusega 32-bitine IEEE 754 ujuv punkt, samas kui topelt on andmetüüp, mis on kahekordse täpsusega 64-bitine IEEE 754 ujuv punkt.