..
Hva er numerisk kampanjen? Dette er en svært vanlig operasjon i et program og tilsvarer en implisitt konvertering av operander (for eksempel addend) forbundet med en numerisk operatør (f.eks "+" indikerer at tillegg).
Denne konverteringen er nødvendig når operandene ikke passer akkurat den type data som er forventet for operasjonen. I noen tilfeller må konverteringen være eksplisitt (for eksempel ved hjelp av en støpt ) og er derfor ansvarlig for programmereren.
I andre tilfeller, spesielt i tilfelle av mer avanserte programmeringsspråk og distribuerte (heretter vil vi refererer spesielt til Java-språket), er konverteringen gjøres automatisk, og dermed implisitt. I dette tilfellet er det mulig å snakke om numeriske opprykk.
Vi kan skille mellom to hovedtyper av numeriske forfremmelse: monooperatorer numerisk promotering og binære numeriske forfremmelse, som skiller seg vesentlig i naturen på aritmetisk involvert i driften (monooperatorer eller binær). La oss se på begge tråder, ta vare å også gi noen korte eksempler på Java-kode.
La oss se et eksempel:
byte b = 2;
int a [] = new int [b];
Character c = '\ u0001';
til [C] = 1;
a [0] = c;
I dette tilfellet, men veldig enkelt, kan vi identifisere tre eksempler på monooperatorer numeriske opprykk. Den første er utdanning int a [] = new int [b]. Størrelsen på 'faktum utvalget bør være representert ved et heltall (int variable), mens b er en variabel av type byte.
Etterpå, la oss reflektere over utdanning [c] =- 1. I dette tilfellet er det gått som en indeks av «arrays, igjen, ikke en parameter av typen heltall, men (i dette tilfellet) type karakter. Likeledes, den neste setningen en [0] =- c 0 gir plasseringen av "array til en verdi av type int og ikke karakter.
Vi observerer først at det er forbundet med konvertering til "oppdraget operator ("="), derfor en monooperatorer operatør, som er forbundet med kun én operand. Her er grunnen til at vi kan snakke om monooperatorer numeriske opprykk. Hvordan kompilatoren håndterer konverteringer implisitt knyttet til trinn?
I alle tre tilfellene, kan konverteringen skal dekomponeres i to elementære trinn. Først ut er en konvertering typen unboxing, dvs. data (i dette tilfellet av typen Byte eller Character) er konvertert til den tilsvarende primitive datatypen (char byte, henholdsvis).
På dette punktet vi videre til en andre fase av konverteringen i alle tre tilfellene under vurdering er en utvidelse primitiv konvertering. Kort sagt, det er ingen tap av informasjon og faktisk er ny datatype du velger (int) overabundant i forhold til å lagre informasjon (som finnes i variabelen b, eller c av typen Byte, karakter type). Av denne grunn kompilatoren kan utføre konverteringen selv.
Vi legger vekt på det som den eneste reelle konverteringer som kan utføres implisitt i sammenheng med numeriske tilbudet er de som nevnt. Det er faktisk også mulighet for en type konvertering identitet, men opprettholder datatypen på variabelen i spørsmålet og er derfor av interesse hovedsakelig teoretisk.
| |
Linux (Course)
Komplett guide til open-source system. Fra 49 €. |
| |
PHP (Course)
Full kurs for å lage dynamiske nettsider. Fra 49 €. |
| |
Ruby og Ruby on Rails (Course)
Lag programvare og web-applikasjoner med Ruby og RoR. Fra € 39. |