Friday, 15 December 2017

Partisk representation binära alternativ


Omfattad representation Om vi ​​har tal från -8 till 8 kan vi ta bort tecknet genom att lägga till 8 till alla eller siffror. Numren skulle då vara 0 till 16. Det är snarare som att flytta skalan (som vid omvandling av Celsius till Kelvin) för att erhålla endast positiva värden. Denna representation tillåter operationer på de förspända talen att vara desamma som för osignerade heltal, men representerar faktiskt både positiva och negativa värden. Denna metod kallas av flera namn - överskott-K. även kallad förskjuten binär eller förspänd representation. använder ett fast värde K som ett förspänningsvärde. Ett värde representeras av det osignerade numret, vilket är K större än det avsedda värdet. Således representeras 0 av K, och minusK representeras av all-zerosbitmönstret. Detta kan ses som en liten modifikation av två-komplementet. vilket är praktiskt taget överskott-2Nminus1-representationen med negerad mest signifikant bit. Förskjutna representationer används nu främst för exponenten för flytpunkten. IEEE-floating-point-standarden definierar exponentfältet för ett enstaka (32-bitars) nummer som ett 8-bitars överskott-127-fält. Föreslagna representationsexempel Exempel 1: ges 4 bitar, förspänningsvärden med 2 3 (8) SÄRSKILD VALUE för att representeras 3 lägg till förspänningen 3 8 11 osignerat värde 11 Således kommer 3 i 4-bitars förspänd-8-representation 1011 Exempel 2: gett en partisk-8-representation som 0110 vad är det sanna värdet unsigned 0110 representerar decimal 6 subtrahera förspänningen 6 - 8 -2 SÄRSKILDA VÄRDE representerade -2Signed Int: BiasExcess Notation I överskridande notering anger du två parametrar: antalet bitar, N och biasvärdet, K. I SM och 1C finns det bara en parameter: antalet bitar. Till exempel, låt K 5 (i 3 bitar), och du har överskridande 5 representation, som tilldelar 000 till -5 och gör 111 lika med 2. Faktum är att överskott K-representation kartlägger 0 N till - K och 1 N till - K 2 N - 1. Om du väljer K 2 N - 1. vänds teckenbiten, där 1 i MSb betyder positiv och 0 betyder negativ. Med överskridande (eller bias) representation kan du inte lägga till med hjälp av osignerad int tilläggshårdvara. Du behöver en specialiserad krets för att utföra tillägget. Detta diagram förutsätter överskott K-representation. Antal värden Bas 10 till överskott Lägg till överskottet till basens tio nummer. Konvertera den resulterande basen tio nummer till unsigned binär (UB). Överskott till bas 10 Omvandla binärt tal till bas tio med hjälp av osignerad binär representation (UB). Subtrahera överskottet. Det är lätt att se att konvertera till och från överskott av representation är inversa operationer. Varför ExcessBias är olika De andra signerade representationerna vi har sett: SM, 1C och 2C delar upp antalet negativa och icke-negativa värden jämnt. I princip kan du göra det med överskridande representation också. Men eftersom överdriven K-representation med N-bitar har två parametrar, K och N, kan du välja K för att vara vad du vill. Du kan ha mer positiva tal än negativa, inte inkludera noll, och så vidare. Eftersom överdriven K-representation använder två variabler (K ​​och N), kommer vilken hårdvara som helst som är avsedd för att utföra addition i denna representation att bero på både K och N. Lyckligtvis är sorteringsvärden i överskridande representation endast beroende av N. Liksom 2C har överskridande representation vid mest, en noll. Det är dock möjligt att välja K så att det inte finns någon noll (välj en lämpligt stor K). Till skillnad från de andra signerade intrepresentationerna kan du jämföra värden i överskridande representation med osignerad jämförelse. Men de flesta föredrar att göra tillägg korrekt på jämförelse, varför 2C föredras för överskridande notering. Överskridande notering finner en användning i flytande punktrepresentation, men det är därför som vi studerar det. När vi lär oss hur flytande punkttal representeras i datorer har jag stött på termen biasvärde som jag inte riktigt förstår. Förspänningsvärdet i flytpunkten har att göra med negativet och positiviteten hos exponentdelen av ett flytpunktsnummer. Förskjutningsvärdet för ett flytpunktsnummer är 127, vilket innebär att 127 alltid läggs till exponentdelen av ett flytpunktsnummer. Hur gör det här hjälpa att avgöra om exponenten är negativ eller positiv eller inte frågad 14 maj 10 kl 15:17 b0lt har redan förklarat hur bias fungerar. På ett gissning kanske du vill veta varför de använder en biasrepresentation här, även om nästan alla moderna datorer använder två komplement i huvudsak överallt (och till och med maskiner som inte använder två komplement, använder dem komplement eller sign-magnitude, inte bias) . Ett av målen med IEEE-floating point-standarderna var att du kunde behandla bitarna i ett flytande punktnummer som ett (signerat) heltal av samma storlek, och om du jämförde dem så kommer värdena att sortera i samma ordning som de flytande punkttal som de representerade. Om du använde en två-komplementrepresentation för exponenten skulle ett litet positivt tal (dvs med en negativ exponent) se ut som ett mycket stort heltal eftersom den andra MSB skulle ställas in. Genom att använda en biasrepresentation istället löser du inte in det - en mindre exponent i flytpunkten ser alltid ut som ett mindre heltal. FWIW, det här är också varför flytande punkttal typiskt ordnas med tecknet först, då exponenten och slutligen signalen i minst signifikanta bitar - på så vis, om du ser dessa bitar som ett heltal behandlas exponenten som mer signifikant än signifikanten, så du får inte (till exempel) 0,9 sortering större än 1,0. svarade 14 maj 10 kl 15:44 Lägger till mer detaljer till ovanstående svar. För att representera 0. oändlighet och NaN (Not-a-Number) i flytpunkten bestämde IEEE att använda speciella kodningsvärden. Om alla bitar i exponentfältet är inställda på 0, är ​​flytpunkten 0,0. Om alla bitar i exponentfältet är inställda på 1 och alla bitar i fraktionsdelen är 0, är ​​float-punktnumret oändligt. Om alla bitar i exponentfältet är inställda på 1 och alla bitar av fraktionsdelen inte är lika med 0, är ​​flytpunktsnumret NaN. Så i enkel precision har vi 8 bitar för att representera exponentfältet och det finns 2 specialvärden, så vi har i grunden 256 - 2 254 värden som kan representeras i exponent. Så kan vi effektivt representera -126 till 127 i exponenten, det vill säga 254 värden (126 127 1), 1 läggs till 0. besvarad 21 apr 13 kl 3:14

No comments:

Post a Comment