Ladda ner presentationen
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
Liknande presentationer
© 2024 SlidePlayer.se Inc.
All rights reserved.