Copyright  Hannu Laine Bittitason-operaatiot Hannu Laine.

Slides:



Advertisements
Samankaltaiset esitykset
Tuloksellinen Java-ohjelmointi Luku 3 Luokkien käyttäminen
Advertisements

15. Loogiset operaatiot.
@ Leena Lahtinen Helia Ohjelman perusrakenteet 1. PERÄKKÄISRAKENNE 2. VALINTARAKENNE 3. TOISTORAKENNE.
Tietokonetekniikka 5 Operandien osoittaminen ja tietokoneen käskykanta
Olio-ohjelmoinnin perusteet luento 3: Muuttujista ja funktioista Sami Jantunen LTY/Tietotekniikan osasto.
© Hannu Laine 1 Tietorakenteet ja algoritmit Funktio-osoittimet Funktio-osoittimen ja taulukko-osoittimen vertailu Funktio-osoittimen käyttötapoja.
JavaScript (c) Irja & Reino Aarinen, 2007
Ohjelman perusrakenteet
Tietorakenteet ja algoritmit
Rakenteinen ohjelmointi
Copyright  Hannu Laine Osoittimet ja taulukot Hannu Laine.
Käännösaikaiset virheilmoitukset • Tulee silloin, kun koodissa on jotain sellaista, joka ei ole Javan syntaksin mukaista • Esim. – Syntax error, insert.
Näytölle tulostaminen. 7.2 Sisällys System.out.println - ja System.out.print -operaatiot. Tulostus erikoismerkeillä. Edistyneempää tulosteiden.
C-ohjelmointi, kevät 2006 Taulukot Binääritiedostot Luento
OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT. LUOKKA JAVA ohjelma koostuu luokista LUOKKA sisältää metodeja molemmat sisältävät attribuutteja eli muuttujia.
@ Leena Lahtinen OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT.
TIETOKONEOHJELMAN RAKENNE OHJELMALLA ON KAKSI OSAA  MÄÄRITYSOSA TIETOJEN KUVAUKSIA VARTEN  SUORITUSOSA TIETOJEN KÄSITTELYÄ VARTEN.
OLIO-OHJELMOINTI PERUSTEET PERUSTIETOTYYPIT
TyyppimuunnoksettMyn1 Tyyppimuunnokset Joskus kääntäjän on tehtävä itse päätöksiä, jos ohjelmoija ei ole ajatellut yksityiskohtia: int arvo1=10; long arvo2=25;
Ohjelmoinnin tekniikkaa Sisällys for -lause lyhemmin. Vaihtoehtoisia merkintöjä aritmeettisille lauseille. Useiden muuttujien esittely.
Konekieli.
Ohjelman perusrakenteet
Tiedon esittäminen.
© Jukka Harju, Jukka Juslin
TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op
Erilaiset liitokset FROM-osassa voidaan määritellä relaatio myös erilaisia liitosoperaatioita käyttäen Vasen, oikea ja täysi puoliliitos eli ulkoliitos.
ict1td002 - Copyright Raine Kauppinen 1 Alkuarvot ja tyyppimuunnokset (1/5)  Aiemmin olemme jo antaneet muuttujille alkuarvoja, esimerkiksi: int.
Visual Basic -ohjelmointi
TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op ALU.
SQL Standardoitu kieli, jonka avulla voidaan
TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op
4. Attribuutit 4.1. Sisällys Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2.
@ Leena Lahtinen OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT.
6. Relaatioalgebra ja relaatiokalkyyli
5. Lineaarinen optimointi
@ Leena Lahtinen TIETOKONEOHJELMAN RAKENNE OHJELMALLA ON KAKSI OSAA:  MÄÄRITYSOSA TIETOJEN KUVAUKSIA VARTEN  SUORITUSOSA TIETOJEN KÄSITTELYÄ.
Johdatus ohjelmointiin – C kielen peruselementit Tutkijayliopettaja Manne Hannula Opetusharjoittelu (ohjaava opettaja Jukka Jauhiainen)
Aakkosnumeerinen tieto Tarkoittaa kaikkea muuta tietoa paitsi laskentaan tarkoitettuja lukuja Muuttujan tietosisältö on siis tekstitietoa Muuttujan tietotyypiksi.
Logiikka.
Tietokoneen rakenne matalalla tasolla KYMENLAAKSON AMMATTIKORKEAKOULU Jarkko Ansamäki, kevät 2002.
Kontrollirakenteet laajemmin
XSL Teppo Räisänen
XSL Teppo Räisänen
Listat eli luettelot listaelementit ovat lohkoelementtejä:  lista ja listan alkiot alkavat uudelta riviltä  listan jälkeen tuleva elementti alkaa uudelta.
Ohjausrakenteet Määräävät ohjelmakoodin suoritusjärjestyksen Ehtolause if – else on muotoa if (lauseke) lause1 else lause2 Jos lauseke on tosi, niin suoritetaan.
Loogiset piirit Puolijohteet Puolijohdekomponentit Loogiset piirit.
Lajittelun sovelluksia Yksilöllisyyden testaaminen Kopioiden poistaminen Mediaani/n:ksi suurimman valinta frekvenssien laskenta/yleisin alkio, l.moodi.
Mikro-ohjelmoitava tietokone
Tietorakenteet ja C-kieli
Kierros 3 - OLO Kuva. Tänään Lyhyesti kurssista tähän mennessä Viikon aiheiden esittely Jakautuminen ryhmiin ja työskentely ryhmissä – OLO1 –
TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op Assembly ja konekieli.
TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op
8. Näppäimistöltä lukeminen
KNX - DALI harjoitus 1 Yksittäiset ECG-ohjaukset RATKAISU
Yhden bitin asettaminen Javalla
Siirtorekisterin toteutus Javalla
13. Loogiset operaatiot.
7. Näytölle tulostaminen
Aakkosnumeerinen tieto
9. Aritmeettiset operaatiot
19. Tietovirrat.
9. Aritmeettiset operaatiot
16. Ohjelmoinnin tekniikkaa
Aakkosnumeerinen tieto
Jouni Juntunen Oulun seudun ammattikorkeakoulu Liiketalouden yksikkö
ioctl #include <sys/ioctl.h> int ioctl(int d, int request, ...);
7. Näytölle tulostaminen
13. Loogiset operaatiot.
Ohjelman perusrakenteet
16. Ohjelmoinnin tekniikkaa
Esityksen transkriptio:

Copyright  Hannu Laine Bittitason-operaatiot Hannu Laine

HL1 Vanhastaan tuttua: Looginen tieto ilmaistaan int tyypillä. Loogisen tiedon operaatioita ovat AND (&&), OR (||) ja NOT (!). Pienin muistista prosessoriin siirrettävä yksikkö on tavu. Kuitenkin on tarvetta usein päästä käsiksi yhteen bittiin. Silloin bitin sisältävä tavu siirretään prosessorin rekisteriin, tehdään operaatiot siten, että ne vaikuttavat vain kyseiseen bittiin ja siirretään tavu takaisin muistiin. Bittitason operaatiot 1 Tällaisia yhteen bittiin kohdistuvia operaatioita ovat Bittiposition testaus (Onko tilassa 0 vai 1?). Bittiposition asetus (tilaan ON eli 1). Bittiposition nollaus (tilaan OFF eli 0). Bittiposition tilan vaihto (bitin ”kääntö”). Lisäksi voidaan tarvita useamman bitin muodostaman bittikentän käsittelyä Bittikentän arvon selvittäminen Arvon asetus bittikenttään

HL2 Bittitason operaattorit ja vertailu loogisiin: OperaatioLooginen oper.Bittitason oper. AND&&& OR||| XOR(ei ole)^ NOT!~ (komplementti) Huom. Molemmat määritelty kokonaisluvuille. Bittitason operaatiot 2 Operaattorien toiminta käytännössä unsigned int a = 0xA300; // unsigned int b = 0x5300; // unsigned int c; c = a && b;// c  1 Miksi? c = a & b;// c  0x0300 c = a || b;// c  1 Miksi? c = a | b;// c  0xF300 c = a ^ b; // c  0xF000 c = !a;// c  0 Miksi? c = ~a;// c  0x5CFF

HL3 Esimerkkinä käytetään yksinkertaisessa tekstimuodossa olevan PC:n näytön näyttömuistin attribuuttitavua, jonka muoto on Bittioperaatioiden hyödyntäminen 1 Taustaväri Kirkkaus Merkkiväri Vilkutus R G B Bittiposition testaus Esim. Onko vilkutus päällä? #define BLINK 0x80 if ( attr & BLINK) printf(”\nVilkutus on päällä”) else printf(”\nVilkutus ei ole päällä”) Oletetaan, että muuttujassa attr on näytön tietyn merkkipaikan attribuutti. Muuttuja attr on määritelty seuraavasti: unsigned char attr;

HL4 Bittioperaatioiden hyödyntäminen 2 Bittiposition asetus (tilaan ON eli 1) Esim. Aseta merkin kirkkaus päälle. #define INTENSITY 0x08... attr = attr | INTENSITY;... Bittiposition nollaus (tilaan OFF eli 0) Esim. Poista merkin kirkkaus. #define INTENSITY 0x08... attr = attr & ~INTENSITY;... Bittiposition tilan vaihto (bitin ”kääntö”) Esim. Vaihda kirkkausbitin tila? #define INTENSITY 0x08... attr = attr ^ INTENSITY;... Kaikissa näissä on valittava: 1) maski 2) operaatio.

HL5 Bittioperaatioiden hyödyntäminen 3 Tarkistettavat asiat: Muutettava bittipositio muuttuu toivotuksi 1) Muuttuu toivotuksi, jos alkutilanne 0 2) Muuttuu toivotuksi, jos alkutilanne 1 Muualla kaikki säilyy 3) 0 säilyy 4) 1 säilyy Lisäksi voidaan tarvita useammasta bitistä muodostuvan bittikentän käsittelyä. Näin on esimerkiksi tehtävissä: 1) Mikä on taustan väri (värinumerona)? tai 2) Aseta taustan väriksi ruskea (värinumero 6)! Silloin tarvitaan siirto-operaatioita. xxxx xxxx käsiteltävä sana ssss ssms ssss ssss maski xxxx xxtx xxxx xxxx tulos säilyy haluttu tulos s ”säilyttää” m modifioi t on tulos

HL6 Siirto-operaatiot Siirto vasemmalle >. Onko int-tyyppisen tiedon siirto oikealle aritmeettinen vai looginen? Ei määritelty standardissa. => Kannattaa käyttää vain unsigned tiedolle tai maskata sisään tulevat bitit. Seuraavissa bcolor on määritelty seuraavasti: unsigned char bcolor tai unsigned int bcolor. Bittikentän arvon selvittäminen Esim. Mikä on taustaväri... bcolor = ( attr >> 4) & 0x07; Arvon asetus bittikenttään Esim. Aseta tautaväriksi ruskea #define BACKGCOLOR 0x70 #define FOREGCOLOR 0x07... bcolor = 6; //esimerkiksi ruskea attr = (attr & ~BACKGCOLOR) | (bcolor << 4) vanhat poisuudet tilalle

HL7 OperaattoriAssosiatiivisuus () [] ->.Left to right ! ~ & * (type)Right to left (unaarinen) * / %Right to left + - Left to right > Left to right >= Left to right == != Left to right & Left to right (bit-wise and) ^ Left to right (bit-wise xor) | Left to right (bit-wise or) && Left to right (logical and) || Left to right (logical or) ? : (condition) Right to left = *= /= %= += -= &= ^= |= >= Right to left,Left to right Operaattorien vahvuudet