Anders Sjögren Bitfält Kompakt datalagring i delar av bytes, ett fält av bits StackBytes Heap.

Slides:



Advertisements
Liknande presentationer
Warpen BK Här följer en instruktion hur man plockar fram egen statistik från datafilen. Det finns två sätt att få fram statistik. Man byter antal dagar.
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.
Programstruktur: C för enchipsdatorer
Introduktion till C för enchipsdatorer
Funktioner och programorganisation
För att + ingen – inte någon Barnen förstår ingenting. Föräldrarna talar engelska för att barnen inte ska förstå någonting.
De fundamentala datatyperna
Datatyper C# C/C++ Java VB Fortran Pascal bool boolean Boolean
Minnesteknologier Teknologi Accesstid Kostnad $/GB SRAM 1 ns 1000 DRAM
Operatorer.
#include void fun(char s[]) { int i=-1; while(s[++i]!=0) { if('a'
Tentamensdags och lab 3…. Större program delas normalt upp i flera filer/moduler vilket har flera fördelar:  Programmets logiska struktur när man klumpar.
Arrays Indicerade variabler.
Föreläsning 2 Datastrukturer Abstrakta datastrukturer Stack
Välkommna! till kursen HI1024 Programmering, grundkurs 8,0 hp
C-programmering ID120V William Sandqvist Länkad lista
Stora additionstabellen
Tentamensdags och lab 3…. Större program delas normalt upp i flera filer/moduler vilket har flera fördelar:  Programmets logiska struktur när man klumpar.
Anders Sjögren Selektion i C ”vägval” if och switch - satserna.
Pekare och speciell programstruktur i inbyggda system
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; }
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.
1 Vänsterskolan Debattartiklar. 2 Aktuell krok 3 Aktuella krokar 1. Direkt krok.
DENSITET Starta BILDSPELs-vy NU ! Ett annat ord för TÄTHET.
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.
TÄNK PÅ ETT HELTAL MELLAN 1-50
William Sandqvist C:s minnesmodell.
Anders Sjögren Minnen, variabler, att lagra i primärminnet forts.
1 Joomla © 2009 Stefan Andersson 1. 2 MÅL 2 3 Begrepp Aktör: en användare som interagerar med webbplatsen. I diagrammet till höger finns två aktörer:
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 4 ( ) INNEHÅLL: -Logiska opertorer -Poster.
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 Pekare. Anders Sjögren Skapa ett program som byter plats på två heltal Pekare.
Databashantering MS Access 2003 Lektion 2
Samordnad Vårdplanering
Anders Sjögren Bitfält exempel Nu kommer ett förbättrat program. Det är funktions- uppdelat och kan lägga till poster som lagras på fil.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 2 ( ) INNEHÅLL: -Variabler och datatyper -Tilldelning av variabler -Aritmetiska.
Problemlösningsmetodik
Välkommna! till kursen HI1024 Programmering, grundkurs 8,0 hp
William Sandqvist C-programmering ID120V Stack och Kö William Sandqvist
PROGRAMMERINGSTEKNIK Övningsgrupp 3 Marcus Hjelm
Anders Sjögren Selektion i C ”vägval” if och switch - satserna.
Räkna till en miljard 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,14,15,16,17,18,19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, En miljard är ett.
Språket för inbyggda system 2
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.
F6 - Pekare 1 Programmeringsteknik, 4p vt-00 Pekare & adresser Alla variabler är knutna till en viss adress i minnet int i; adressen till denna fås med.
F5 - Fält & strängar 1 Programmeringsteknik, 4p vt-00 Fält Många element av samma typ Typexempel : lista av heltal Gemensamt namn Individuella värden nås.
Anders Sjögren Deklarationsområde och funktioner.
William Sandqvist Binärkod och Graykod 7 Bitars Kodskiva för avkodning av vridningsvinkel. Skivans vridnings-vinkel finns tryckt som binära.
F2 1 Programmeringsteknik, 4p vt-00 Kommentarer Allt mellan /* och */ Varje kommentar byts ut mot en blank av kompilatorn /* Exempel på uttryck, tilldelningsoperatorn.
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å.
Kronljusströmställaren 0, 1, 2, 3
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.
Anders Sjögren Data (i primärminnet) som en länkad lista datatypen för varje element i listan är en struktur, post ( struct )
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 Enkelt program med funktion /* two_func.c - a program that uses two functions in one file */ /* from Stephen Prata C Primer Plus ISBN
Anders Sjögren Minnen, variabler, att lagra i primärminnet forts. Den här bilden känner ni igen sedan tidigare. Vi skall fortsätta att prata variabeltyper.
Anders Sjögren Minnen, variabler, att lagra i primärminnet forts.
Språket för inbyggda system. C:s verktygslåda är välfylld! William Sandqvist
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.
R ESULTAT ALTERNATIVA VÄGAR ATT RAPPORTERA RESULTAT PÅ.
Anders Sjögren Funktioner något in och något annat ut.
Beställning - Slutenvård. Tryck på vårdtagarens namn eller personnummer för att påbörja beställningen.
IT Databas Göran Wiréen
Mer om repetionssatser och arrayer
Presentationens avskrift:

Anders Sjögren Bitfält Kompakt datalagring i delar av bytes, ett fält av bits StackBytes Heap

Anders Sjögren Bitfält exempel För studenter i ämnet datateknik önskar man lagra följande data –personnummer i form av år ( xx=57 ) kräver 2bytes som ascii eller int men skulle gå att lagra i 7 bitar ( talen ) månad ( 1-12 ) skulle gå att lagra i 4 bitar ( 0-15 ) dag ( talet 1-31 ) skulle gå att lagra i 5 bitar ( 0-31 ) personnummer ( ) i 14 bitar –delbetyg TEN1 (0, 3-5) skulle gå att lagra i 3 bitar men i detta fall har jag valt 4 bitar för att få utjämning till ett helt ord, 2bytes TEN2 pss LAB1 pss PROJ1 pss

Anders Sjögren Bitfält exempel personnummer i form av –år ( xx=57 ) kräver 2bytes som ascii eller int men skulle gå att lagra i 7 bitar ( talen ) –månad ( 1-12 ) skulle gå att lagra i 4 bitar ( 0-15 ) –dag ( talet 1-31 ) skulle gå att lagra i 5 bitar ( 0-31 ) –personnummer ( ) i 14 bitar delbetyg –TEN1 (0, 3-5) skulle gå att lagra i 3 bitar men i detta fall har jag valt 4 bitar för att få utjämning till ett helt ord, 2bytes –TEN2 pss –LAB1 pss –PROJ1 pss typedefstruct { unsignedar: 7, manad :4, dag :5, kontroll :14, :2, ten1 :4, ten2 :4, lab :4, proj :4 ; } studentDataTyp ; Här är en struct som gör detta möjligt.

Anders Sjögren Bitfält exempel typedefstruct { unsignedar: 7, manad :4, dag :5, kontroll :14, :2, ten1 :4, ten2 :4, lab :4, proj :4 ; } studentDataTyp ; Man bör använda unsigned Bitfälten angivna med namn och antal bitar. Ett icke namn- givet bitfält för att utjämna till ett helt ord. Bitfält skapas m h a en struct.

Anders Sjögren Bitfält exempel int main( void ) { intantal, i, temp ; studentDataTypstudentVektor[30]; printf("Hur många studenters prestationer skall matas in? --> "); scanf("%d", &antal ); for ( i=1 ; i <= antal ; i++ ) { printf("\nStudent nr%d :\n", i); printf("==============\n"); printf("Född år, xx -> "); scanf("%d",&temp); studentVektor[i-1].ar = temp ; printf(" månad, xx -> "); scanf("%d",&temp); studentVektor[i-1].manad = temp ; printf(" dag, xx -> "); scanf("%d",&temp); studentVektor[i-1].dag = temp ; printf("konrollnummer,xxxx -> "); scanf("%d",&temp); studentVektor[i-1].kontroll = temp ; printf("TEN1 betyg -> "); scanf("%d",&temp); studentVektor[i-1].ten1 = temp ; printf("TEN2 betyg -> "); scanf("%d",&temp); OSV Hur man tilldelar fälten värden. Man kan inte ange en adress till ett bitfält

Anders Sjögren Bitfält exempel for ( i=1 ; i <= antal ; i++ ) { printf("\nStudent nr%d, kontroll :", i); printf("\n========================\n"); printf("Född år, : %d \n", studentVektor[i-1].ar); printf(" månad, : %d \n", studentVektor[i-1].manad); printf(" dag, : %d \n", studentVektor[i-1].dag); printf("konrollnummer: %d \n", studentVektor[i-1].kontroll); printf("TEN1 betyg : %d \n", studentVektor[i-1].ten1); printf("TEN2 betyg : %d \n", studentVektor[i-1].ten2); printf("LAB betyg : %d \n", studentVektor[i-1].lab); printf("PROJ betyg : %d \n", studentVektor[i-1].proj); } Hur man hämtar värdet från ett bitfält

Anders Sjögren

Bitfält exempel Nästa gång kommer ett förbättrat program. Det är funktions-uppdelat och kan lägga till poster som lagras på fil