..
Hvad er numerisk fremme? Dette er en meget almindelig operation i et program og svarer til en implicit konvertering af operander (f.eks addend) forbundet med en numerisk operatør (f.eks "+" angiver, at tilføjelse).
Denne konvertering er nødvendig, hvis de operander ikke passer præcis den type data, der forventes for operationen. I nogle tilfælde skal konverteringen være eksplicit (for eksempel ved hjælp af et støbt ) og er derfor ansvarlig for programmøren.
I andre tilfælde, især i tilfælde af mere avancerede programmeringssprog og distribueret (i det følgende vil vi henvise især til Java-sproget), er omdannelse gøres automatisk, og dermed implicit. I dette tilfælde er det muligt at tale om numeriske forfremmelse.
Vi kan skelne mellem to hovedtyper af numeriske forfremmelse: Monadiske numeriske fremme og binære tal fremme, som afviger betydeligt i karakteren af det aritmetiske involveret i driften (Monadiske eller binær). Lad os se på begge strenge, idet man også give nogle korte eksempler på Java-kode.
Lad os se et eksempel:
byte b = 2;
int a [] = new int [b];
Tegn C = '\ u0001';
til [c] = 1;
en [0] = c;
I dette tilfælde, men meget enkelt kan vi identificere tre eksempler på Monadiske numeriske forfremmelse. Den første er uddannelse int a [] = new int [b]. Størrelsen af den »faktisk vifte bør være repræsenteret ved et heltal (int variabel), mens b er en variabel af typen byte.
Bagefter, lad os reflektere over uddannelse [c] =- 1. I dette tilfælde er det gået som et indeks af 'arrays, endnu engang, ikke en parameter af typen heltal, men (i dette tilfælde) type karakter. Tilsvarende, den næste sætning et [0] =- c 0 giver placeringen af "array til en værdi af typen int og ikke karakter.
Vi observerer først, at det er forbundet med omlægning til 'tildelingsoperatoren ("="), derfor en Monadiske operatør, der er forbundet med kun én operand. Her er hvorfor vi kan tale om Monadiske numeriske forfremmelse. Hvordan compiler håndterer konverteringer implicit er forbundet med de skridt?
I alle tre tilfælde, kan omdannelsen opdeles i to elementære trin. Først er en konverteringstype shopping, dvs data (i dette tilfælde af typen Byte eller Character) omdannes til den tilsvarende primitive datatype (char byte, henholdsvis).
På dette punkt er vi videre til en anden fase af omdannelsen i alle tre tilfælde under overvejelse, er en voksende primitiv konvertering. Kort sagt, er der ingen tab af information og ja, den nye datatype, du vælger (INT) er overvældende i forhold til at lagre information (der er indeholdt i variablen b, eller c af typen Byte, tegntype). Af denne grund compileren kan udføre konverteringen selv.
Vi lægger vægt på det som den eneste reelle konverteringer, der kan udføres implicit i forbindelse med numeriske forfremmelse er dem nævnt. Der er faktisk også mulighed for en type konvertering identitet, men fastholder datatypen for variablen i spørgsmålet og er derfor af interesse hovedsagelig teoretisk.
| |
Linux (Kursus)
Komplet guide til open source-system. Fra 49 €. |
| |
PHP (Kursus)
Fuld kursus for at skabe dynamiske web-sites. Fra 49 €. |
| |
Ruby og Ruby on Rails (Kursus)
Opret software og web-applikationer med Ruby og RoR. Fra 39 €. |