..
Wat is numeriek promotie? Dit is een veel voorkomende operatie in een programma en komt overeen met een impliciete conversie van operanden (bijvoorbeeld de Addend) geassocieerd met een numerieke operator (bv "+" geeft aan dat de toevoeging).
Deze omzetting is noodzakelijk wanneer de operanden niet exact overeenkomen met het type gegevens dat wordt verwacht voor de operatie. In sommige gevallen moet de conversie expliciet zijn (bijvoorbeeld met behulp van een cast ) en is daarom de verantwoordelijkheid van de programmeur.
In andere gevallen, met name in het geval van meer geavanceerde programmeertalen en verspreid (hierna noemen we met name aan de Java-taal), wordt de conversie automatisch gedaan, dus impliciet. In dit geval is het mogelijk om te spreken van numerieke promotie.
We onderscheiden twee soorten numerieke promotie: Unaire numerieke promotie en binaire numerieke promotie, die wezenlijk verschillen in de aard van de rekenkunde die betrokken zijn bij de operatie (unaire of binaire). Laten we eens kijken naar beide strengen, en zorg ervoor dat ook enkele korte voorbeelden van Java-code.
Laten we eens een voorbeeld te zien:
byte b = 2;
int a [] = new int [b];
Karakter c = '\ u0001';
om [c] = 1;
een [0] = c;
In dit geval is echter heel simpel, kunnen we drie voorbeelden van Unaire numerieke promotie. De eerste is onderwijs een int [] = new int [b]. De grootte van het 'feit array moet worden vertegenwoordigd door een integer (int variabele), terwijl b is een variabele van het type byte.
Daarna laten we nadenken over het onderwijs [c] =- 1. In dit geval wordt doorgegeven als een index van 'arrays, wederom, niet een parameter van het type integer, maar (in dit geval) type karakter. Ook de volgende instructie een [0] =- c 0 geeft de positie van de 'array een waarde van het type int en niet karakter.
We zien eerst dat het wordt geassocieerd met conversie naar 'toewijzingsoperator ("="), daarom een unaire operator, dat is gekoppeld met slechts een operand. Dit is de reden waarom we kunnen spreken van Unaire numerieke promotie. Hoe de compiler zorgt voor de conversie impliciet geassocieerd met het stappen?
In alle drie gevallen kan de conversie worden ontleed in twee elementaire stappen. De eerste is een conversietype unboxing, dat wil zeggen de gegevens (in dit geval van het type Byte of Character) wordt omgezet in de overeenkomstige primitieve gegevenstype (char byte, respectievelijk).
Op dit punt gaan we verder met een tweede fase van de omzetting in alle drie de gevallen in behandeling is een verbreding primitief conversie. Kortom, er is geen verlies van informatie en inderdaad, de nieuwe data type dat u kiest (int) is in vergelijking met overvloedige informatie (in de variabele b of c van het type Byte, karakter type) op te slaan. Om deze reden is de compiler kan de conversie zelf uitvoeren.
Benadrukken we het als de enige echte conversies die impliciet kan worden uitgevoerd in het kader van de numerieke promotie zijn deze vermeld. Er is in feite ook de mogelijkheid van een type conversie identiteit, maar handhaaft het gegevenstype van de variabele in kwestie en is daarom van belang voornamelijk theoretisch.
| |
Linux (Cursus)
Complete gids voor open-source systeem. Van 49 €. |
| |
PHP (Cursus)
Volledige cursus voor het maken van dynamische websites. Van 49 €. |
| |
Ruby en Ruby on Rails (Course)
Maak software en webapplicaties met Ruby en RoR. Van 39 €. |