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

Slides:



Advertisements
Liknande presentationer
INTRODUKTION TILL PROGRAMMERING
Advertisements

void hittaMax(int tal[], int antal, int *pmax) { int i; ??=tal[0]; for(i=1;i??) ??=tal[i]; } int main() { int v[]={1,2,3,4,2}; int.
Anders Sjögren Lagringsklasser •en variabel i C har två attribut –type( int, float, char..... ) –lagringsklass( auto, extern, register, static ) •lagringsklassens.
Föreläsning 3 Repetition Operatorer Styrstrukturer Deklaration och anrop av metoder.
De fundamentala datatyperna
Datatyper C# C/C++ Java VB Fortran Pascal bool boolean Boolean
Operatorer.
Komplexa tal inför Laborationerna
IE1204 Digital Design F1 F2 Ö1 Booles algebra, Grindar F3 F4
Arrays Indicerade variabler.
Om Java C =>Java syntax variabler metoder färdiga klasser
C-programmering ID120V William Sandqvist Länkad lista
Välkommen Vahid Mosavat
Att programmera i språket Java
Föreläsning 2 Primitiva datatyper Variabler och konstanter Tilldelning Inläsning Operatorer Villkorssatsen if Slingor: while och for.
Anders Sjögren Selektion i C ”vägval” if och switch - satserna.
Föreläsning 11 Arrayer.
William Sandqvist Funktion som byter plats på två variabler /* swap1.c first attempt at a swaping function */ /* from Stephen Prata, C Primer.
Sid period2CD5250 OOP med C++ Mats Medin MDH/IDT C++ - förbättrat C?  Procedurellt program ser ut som C: sekvens, selektion, iteration  /* kommentar.
Pointers. int a=5; int f(int b) { a--; b++; return b; } int main() { int a=3; printf("%d,",f(a)); printf("%d",a); return 0; }
Programmering B PHP Lektion 2
Föreläsning 2 Kort Översikt Över Javaspråket. Källkodsformat Unicode används åäöμψζ tillåtna Inte alla miljöer klarar av det Källkod Bytekod Java VM för.
Tabeller.
Matematik A - Introduktion
Deklarera en struct som kan användas för att representera en rät linje Använd den I main för att deklarera en variabel som du initierar så att den representerar.
William Sandqvist C:s minnesmodell.
Föreläsning 7 Uttryck, Operatorer Och Kontrollflöden.
Problemlösning Veckodagsproblemet Gissa talet Siffersumman.
Anders Sjögren Mer om datatyper. Anders Sjögren const det finns ett elegantare sätt att skapa konstanter i C än sättet med makro som vi använt tidigare.
Modulär programutveckling
Anders Sjögren Bitfält Kompakt datalagring i delar av bytes, ett fält av bits StackBytes Heap.
William Sandqvist Databuffer Omvandlar mellan olika storlekar på dataobjekt Anpassar mellan olika dataöverföringshastigheter Databuffer.
Objektorienterad Programmering i C++ I
Föreläsning 1 Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 2 ( ) INNEHÅLL: -Variabler och datatyper -Tilldelning av variabler -Aritmetiska.
Problemlösningsmetodik
William Sandqvist C-programmering ID120V Stack och Kö William Sandqvist
Anders Sjögren Selektion i C ”vägval” if och switch - satserna.
Digitalteknik 7.5 hp distans: 4.6 Adderare 4.45 Adderare Addition av två tal innebär att samma förfarande upprepas för varje position i talet. För varje.
Språket för inbyggda system 2
INTRODUKTION TILL PROGRAMMERING
Digitalitet.
Anders Sjögren Filer - långtidslagring. Anders Sjögren Filtyper i DOS talet ett ( intx=1; ) lagrat i en –textfil, (en sekvens av tecken ( bytes )) enligt.
William Sandqvist Melodispelaren Denna demonstrationslaboration visar, steg för steg, hur man skriver ett kort program i programspråket.
William Sandqvist IS1500 Datorteknik William Sandqvist
William Sandqvist Binärkod och Graykod 7 Bitars Kodskiva för avkodning av vridningsvinkel. Skivans vridnings-vinkel finns tryckt som binära.
Föreläsning 17 Repetition. Källkodsformat Unicode används åäöμψζ tillåtna i namn på identifierare Inte alla miljöer klarar av det Källkod Bytekod Java.
Negativa tal – några exempel
F2 1 Programmeringsteknik, 4p vt-00 Kommentarer Allt mellan /* och */ Varje kommentar byts ut mot en blank av kompilatorn /* Exempel på uttryck, tilldelningsoperatorn.
Digitalteknik 7.5 hp distans: Talsystem och koder 1.3.1
William Sandqvist Distributed Computing Client – Server. En skrivarserver kan vara ett exempel på en Client-Server arkitektur. S Burd, Systems.
William Sandqvist Funktionsbibliotek När man utvecklat en funktion så långt att den är "färdigutvecklad" kan man lika gärna spara den på.
William Sandqvist PWM Sinusoidal Hur tillverkar man en sinusformad spänning? En PWM-signal kan ge en sinusapproximation. Efter filtrering.
Föreläsning 7 programmeringsteknik och Matlab 2D1312/2D1305 Metoddeklaration och parametrar Arrayer och ArrayList.
-Repetition -Variabler -Primitiva typer (+ boolean) -Operatörer +, ++, --, -Typ konvertering -Wrapper klasser -Jämförelse operatörer,(==, =,,!=, !) -String.
William Sandqvist Datorteknik övning 1 Introduktion till assemblerprogrammering av Nios II William Sandqvist
Mer om operatorer logiska operatorer bit-operatorer adress-operatorn ”komma”-operatorn punkt - operatorn.
Flyttal ● Alla tal kan skrivas tal = ± m. 2 exp ● ± lagras separat (1 bit), resten är absolutbelopp ● m kallas mantissa och anger siffrorna i talet ● exp.
1 Föreläsning 2 Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
-Repetition -Variabler -Primitiva typer (+ boolean) -Operatörer +, ++, --, -Typ konvertering -Wrapper klasser -Jämförelse operatörer,(==, =,,!=, !) -String.
Föreläsning 3 Operatorer Flödeskontroll Primitiva datatyperKlasser i API och egna klasser int double byte float char boolean short long String BufferedReader.
Kronljusströmställaren 0, 1, 2, 3
Anders Sjögren Mer om datatyper. Anders Sjögren const det finns ett elegantare sätt att skapa konstanter i C än sättet med makro som vi använt tidigare.
Anders Sjögren Operatorer. Anders Sjögren Operand(er)
Anders Sjögren Programmering i ANSI-C Ett första program för att se vart vi ska...
Mer om operatorer logiska operatorer bit-operatorer adress-operatorn ”komma”-operatorn punkt - operatorn.
Mer om repetionssatser och arrayer
Datalängd och datatyper
Digitala tal och Boolesk algebra
Z 1.3 Räkna med negativa tal
Presentationens avskrift:

Kronljusströmställaren 0, 1, 2, 3 William Sandqvist william@kth.se

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

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 william@kth.se

William Sandqvist william@kth.se Komplementräkning Subtraktion med en additionsmaskin = komplementräkning 63 - 17 = 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: 63+82+1 = 146. Om bara två siffror visas: 46 William Sandqvist william@kth.se

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 william@kth.se

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 william@kth.se

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 = 65536 tal. 0…65535, -32768…+32767 Vanliga registerstorlekar är idag 32 bitar (DoubleWord) och 64 bitar (QuadWord ). William Sandqvist william@kth.se

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 william@kth.se

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 william@kth.se

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 william@kth.se

Windowsprogrammet Kalkylatorn View: Scientific Talsystem: Bin Oct Dec Hex Registerstorlekar: Byte Word Dword Qword Operatorer: + - * / Mod And Or Xor Not … William Sandqvist william@kth.se

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

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 william@kth.se

William Sandqvist william@kth.se ASCII-tabellen Ett tecken lagras i en Byte. Hej! 48 65 6A 21 01001000 01100101 01101010 00100001 http://ascii-table.com/ William Sandqvist william@kth.se

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 1 114 112 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 william@kth.se

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

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 william@kth.se