Presentation laddar. Vänta.

Presentation laddar. Vänta.

Kronljusströmställaren 0, 1, 2, 3

Liknande presentationer


En presentation över ämnet: "Kronljusströmställaren 0, 1, 2, 3"— Presentationens avskrift:

1 Kronljusströmställaren 0, 1, 2, 3
William Sandqvist

2 William Sandqvist william@kth.se
Styr med binärkod William Sandqvist

3 William Sandqvist william@kth.se
Dec Bin Hex Dec Bin Hex 0000 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110 7 0111 8 1000 9 1001 10 1010 A 11 1011 B 12 1100 C 13 1101 D 14 1110 E 15 1111 F Dec  Bin, successiva divisioner med 2 William Sandqvist

4 William Sandqvist william@kth.se
Komplementräkning Subtraktion med en additionsmaskin = komplementräkning = 46 Talet -17 slås in som med röda siffror 17 och blir då 82. När - tangenten trycks in adderas 1. Resultatet blir: = 146. Om bara två siffror visas: 46 William Sandqvist

5 William Sandqvist william@kth.se
2-komplement Binärtalet 3, 0011, blir negativt -3 genom att man inverterar alla bitar och lägger till ett, 1101. William Sandqvist

6 William Sandqvist william@kth.se
Registeraritmetik Datorregister är ”ringar” Ett fyra bitars register rymmer 24 = 16 tal. Antingen 8 positiva (+0…+7) och 8 negativa (-1…-8) tal ”med tecken”, eller 16 (0…F) ”teckenlösa” tal. Om registret är fullt gör ”+1” att det ”slår runt”. William Sandqvist

7 William Sandqvist william@kth.se
Registerlängd 4 bitar kallas Nibble. Registret rymmer 24 = 16 tal. 0…15, -8…+7 8 bitar kallas Byte. Registret rymmer 28 = 256 tal. 0…255, -128…+127 16 bitar kallas Word. 216 = tal. 0…65535, …+32767 Vanliga registerstorlekar är idag 32 bitar (DoubleWord) och 64 bitar (QuadWord ). William Sandqvist

8 Exempel registerlängd
Ett datorregister som blir fullt slår runt som km-räknaren på en bil. En speciell Carry-flagga kan signalera om detta hänt! William Sandqvist

9 William Sandqvist william@kth.se
Overflow När man räknar med ”tal med tecken” kan summan av två positiva tal felaktigt bli negativ (tex. ”+4” + ”+5” = ”-7”), liksom summan av två negativa tal felaktigt kan bli positiv (tex. ”-6” + ”-7” = ”+3”). Detta kallas för Overflow. 32-bitarsdatorer behöver inte ha hårdvara för att upptäcka Carry eller Overflow – det är där sällsynta händelser. William Sandqvist

10 William Sandqvist william@kth.se
Sign Extension Om ett tal ”med tecken” ska kopieras från ett kort register (tex. 4 bitar) till ett längre register (tex. 8 bitar) gör man Signextension. Är talet positivt fyller man på med inledande 0:or är det negativt med inledande 1:or. William Sandqvist

11 Windowsprogrammet Kalkylatorn
View: Scientific Talsystem: Bin Oct Dec Hex Registerstorlekar: Byte Word Dword Qword Operatorer: * / Mod And Or Xor Not … William Sandqvist

12 William Sandqvist william@kth.se
Reella tal Decimalkomma ”,” och Binärpunkt ”.” 10, = OBS! Ekonomiprogram bör genomgående använda heltal. William Sandqvist

13 William Sandqvist william@kth.se
IEEE – 32 bit float Genom att exponenteten skrivs exess–127 kan flyttal storlekssorteras med vanlig heltalsaritmetik! Dec  IEEE-754 William Sandqvist

14 William Sandqvist william@kth.se
ASCII-tabellen Ett tecken lagras i en Byte. Hej! A William Sandqvist

15 William Sandqvist william@kth.se
Unicode Industristandarden Unicode. Syftet är att få en världsgemensam tecken-kodning som fungerar för alla, oav-sett språk eller datorsystem. Unicode använder 21 bitar för ett tecken, totalt tecken. Ex. anges kodpunkten för α som U+03B1. Ett Unicode-tecken kan lagras i en 32 bitars int. UTF-8 är ASCII kompatibelt A-Z med 1 Byte/tecken. Om det dyker det upp andra tecken går det åt fler bytes/tecken. William Sandqvist

16 William Sandqvist william@kth.se
C’s Datatyper Heltalsvariabler: char, short int, int, long signed eller unsigned Flyttalsvariabler: float, double William Sandqvist

17 William Sandqvist william@kth.se
Hur många Byte är en int? det får man veta genom att köra ett testprogram på sin dator: #include <stdio.h> int main(void) { printf("typ\t\tbytes\n"); printf("signed char \t%d\n", sizeof(char)); printf("unsigned char \t%d\n", sizeof(unsigned char)); printf("signed int \t%d\n", sizeof(int)); printf("unsigned int \t%d\n", sizeof(unsigned int)); printf("long \t\t%d\n", sizeof(long int)); printf("float \t\t%d\n", sizeof(float)); printf("double \t\t%d\n", sizeof(double)); system("PAUSE"); return 0; } William Sandqvist


Ladda ner ppt "Kronljusströmställaren 0, 1, 2, 3"

Liknande presentationer


Google-annonser