Microsoft PowerPoint - Bitovi [Compatibility Mode]

Слични документи
Konverzije, operatori, matematičke funkcije predavač: Nadežda Jakšić

Razvoj programa, Code::Blocks, struktura programa, printf, scanf, konverzioni karakteri predavač: Nadežda Jakšić

Microsoft Word - 1.Operacije i zakoni operacija

Microsoft PowerPoint - Datoteke [Compatibility Mode]

Uvod u računarstvo 2+2

Programiranje 1 9. predavanje Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog1 2018, 9. predavanje p. 1/6

Tutoring System for Distance Learning of Java Programming Language

Grananje u programu predavač: Nadežda Jakšić

Programiranje 2 0. predavanje Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog2 2019, 0. predavanje p. 1/4

ALIP1_udzb_2019.indb

Uvod u računarstvo 2+2

Uvod u takmičarsko programiranje

Увод у организацију и архитектуру рачунара 1

Programiranje 2 Beleške sa vežbi Školska 2007/2008 godina Matematički fakultet, Beograd Jelena Tomašević February 23, 2008

070-ALIP2-udzbenik.indb

Programski jezik C

Uvod u organizaciju i arhitekturu računara 2 1

PowerPoint Presentation

Funkcije predavač: Nadežda Jakšić

PROMENLJIVE, TIPOVI PROMENLJIVIH

Uvod u računarstvo 2+2

Logičke izjave i logičke funkcije

INF INFORMATIKA INF.27.HR.R.K1.20 INF D-S INF D-S027.indd :50:41

Programiranje 1 Beleške sa vežbi Školska 2007/2008 godina Matematički fakultet, Beograd Jelena Tomašević December 5, 2007

PowerPoint Presentation

Microsoft Word - 02 Elementi programskog jezika Pascal

23. siječnja od 13:00 do 14:00 Školsko natjecanje / Osnove informatike Srednje škole RJEŠENJA ZADATAKA S OBJAŠNJENJIMA Sponzori Medijski pokrovi

Programiranje u C-u ili C++-u Pseudo-slučajni brojevi; Dinamička alokacija memorije 1 ZADACI SA ČASA Zadatak 1 Napraviti funkciju koja generišlučajan

Microsoft PowerPoint - 11.Programski_Jezik_C_ulaz-izlaz [Compatibility Mode]

Programiranje predavanje Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog1 2016, 10. predavanje p. 1

Programiranje 1 Milena Vujošević - Janičić 2008/2009

PowerPoint Presentation

Programiranje 1 5. predavanje dodatak Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog1 2018, 5. predavanj

Precesor Intel 8086

AR2019

Tutoring System for Distance Learning of Java Programming Language

Microsoft PowerPoint - Programski_Jezik_C_Organizacija_Izvornog_Programa_I_Greske [Compatibility Mode]

Programiranje 1 IEEE prikaz brojeva sažetak Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog1 2018, IEEE p

PRIRODNO MATEMATIČKI FAKULTET U NIŠU DEPARTMAN ZA RAČUNARSKE NAUKE Utorak, godine PRIJEMNI ISPIT IZ INFORMATIKE 1. Koja od navedenih ekste

I grupa 1. Napisati program koji izračunava i ispisuje zbir 4 najveća od pet brojeva unetih sa standardnog ulaza. ulaz izlaz Analiza: 1.

Programiranje 1 3. predavanje Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog1 2017, 3. predavanje p. 1/1

Programiranje 2 7. predavanje Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog2 2019, 7. predavanje p. 1/7

ELEKTROTEHNIČKI FAKULTET UNIVERZITETA U BEOGRADU BEOGRAD, Ispit iz Programiranja 2 Ispit traje 135 minuta Napomene: a) Pažljivo proučite U

Funkcije predavač: Nadežda Jakšić

Испит из Основа рачунарске технике OO /2018 ( ) Р е ш е њ е Задатак 5 Асинхрони RS флип флопреализован помоћу НИЛИ кола дат је на след

Konstrukcija i analiza algoritama vežbe 10 Nina Radojičić 15. decembar Algoritamske strategije - podeli pa vladaj (divide and conquer) Ova stra

Microsoft PowerPoint - MR - Vjezbe - 03.ppt [Compatibility Mode]

Mathcad - MCADMod MCD

Uvod u računarstvo 2+2

Algoritmi i arhitekture DSP I

Programiranje 1 3. predavanje prošireno Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog1 2018, 3. predava

Microsoft PowerPoint - 03-Slozenost [Compatibility Mode]

1. Vremensko ograničenje Memorijsko ograničenje ulaz izlaz 0,1 s 64 MB standardni ulaz standardni izlaz Banka želi da upozori kupce na sumnjive aktivn

Projektovanje digitalnih sistema

Državno natjecanje / Osnove informatike Srednje škole Zadaci U sljedećim pitanjima na odgovore odgovaraš upisivanjem slova koji se nalazi ispred

Strukture predavač: Nadežda Jakšić

1. OPĆE INFORMACIJE 1.1. Naziv kolegija Programiranje 1.6. Semestar Nositelj kolegija dr.sc. Bruno Trstenjak, v. pred Bodovna vrijednost

Programski jezik C

Skripte2013

PROGRAMIRANJE Program je niz naredbi razumljivih računalu koje rješavaju neki problem. Algoritam je postupak raščlanjivanja problema na jednostavnije

Орт колоквијум

Programiranje II Beleške sa vežbi Smer Informatika Matematički fakultet, Beograd Sana Stojanović 1

07_PJISP_II_Predavanja

Matrice. Algebarske operacije s matricama. - Predavanje I

Računarski praktikum I - Vježbe 03 - Implementacija strukture string

PowerPoint Presentation

Испит из Основа рачунарске технике OO /2018 ( ) Р е ш е њ е Задатак 5 Асинхрони RS флип флопреализован помоћу НИ кола дат је на следећ

Microsoft Word - 11 Pokazivaci

Programiranje 2 1. predavanje Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog2 2019, 1. predavanje p. 1/7

Programiranje za UNIX Okruženje unix procesa

Računarski praktikum I - Vježbe 01 - Uvod

Tutoring System for Distance Learning of Java Programming Language

Programiranje 2 popravni kolokvij, 15. lipnja Ime i prezime: JMBAG: Upute: Na kolokviju je dozvoljeno koristiti samo pribor za pisanje i brisanj

CIJELI BROJEVI 1.) Kako još nazivamo pozitivne cijele brojeve? 1.) Za što je oznaka? 2.) Ispiši skup prirodnih brojeva! 3.) Kako označavamo skup priro

INTERPRETER LOGO NAREDBI Teodor Lozinski Tomislav Višnić Kolegij: Uporaba računala u nastavi, Fizički odsjek, PMF, Sveučilište u Zagrebu, UVOD Z

PowerPoint Presentation

Programski jezici i strukture podataka

Microsoft Word - KVADRATNA FUNKCIJA.doc

Datoteke predavač: Nadežda Jakšić

Microsoft Word - 7. cas za studente.doc

Рачунарска интелигенција

6-8. ČAS Celobrojno programiranje Rešavamo sledeći poblem celobrojnog programiranja: Gde pretpostavljamo da je A celobrojna matrica dimenzije,. Takođe

УНИВЕРЗИТЕТ У НИШУ ПРИРОДНО-МАТЕМАТИЧКИ ФАКУЛТЕТ Департман за рачунарске науке Писмени део испита из предмета Увод у рачунарство 1. [7 пое

MJEŠOVITA SREDNJA TEHNIČKA ŠKOLA TRAVNIK PROGRAMIRANJE I PROGRAMSKI JEZICI PROGRAMSKI JEZIK C -SKRIPTA ZA INTERNU UPOTREBU-

Državna matura iz informatike

P11.3 Analiza zivotnog veka, Graf smetnji

Microsoft PowerPoint - Programski_Jezik_C_Organizacija_Izvrsnog_Programa [Compatibility Mode]

Microsoft PowerPoint - Timer0 16F887.ppt [Compatibility Mode]

Oblikovanje i analiza algoritama 5. predavanje Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb OAA 2017, 5. pr

OPIS RAČUNARSKOG SISTEMA Računarski sistem se sastoji od procesora, operativne memorije, tajmera i terminala. Sve komponente računarskog sistema su me

Microsoft PowerPoint - C-4-1

Programski jezici i strukture podataka 2018/2019. Programski jezici i strukture podataka Računarske vežbe vežba 10 Zimski semestar 2018/2019. Studijsk

LAB PRAKTIKUM OR1 _ETR_

Microsoft PowerPoint - 11_JavaScript_1.ppt [Compatibility Mode]

PowerPoint Presentation

MergedFile

Fortran

Архитектура и организациjа рачунара Милан Банковић 10. април 2019.

Школа Ј. Ј. Змај Свилајнац МЕСЕЧНИ ПЛАН РАДА ЗА СЕПТЕМБАР Школска 2018 /2019. Назив предмета: Информатика и рачунарство Разред: 5. Недељни број часова

Транскрипт:

Оператори над битовима (Јаничић, Марић: Програмирање 2, тачка 5.6) Оператори за рад са појединачним битовима Само на целобројне аргументе: ~ битовска негација & битовска конјункција (и) битовска (инклузивна) дисјункција (или) ^ битовска ексклузивна дисјункција (или-или) << померање (шифтовање) битова улево >> померање (шифтовање) битова удесно &=, =, ^=, >>=, >>= битовске доделе 1/22

Оператори: приоритети 1. (), [ ] sleva nadesno 2.!,, ++,--, +,, *, &, (tip) zdesna nalevo 3. *, /, % sleva nadesno 4. +, sleva nadesno 5. <<, >> sleva nadesno 6. <, <=, >, >= sleva nadesno 7. ==,! = sleva nadesno 8. & sleva nadesno 9. ˆ sleva nadesno 10. sleva nadesno 11. && sleva nadesno 12. sleva nadesno 13.?: zdesna ulevo 14. =,+=,-=,/=,%=,&=,ˆ=, =,<<=,>>= zdesna ulevo 15., sleva udesno 2/22

Оператори: приоритети Дискусија Највиши приоритет: унарни ~; бинарни <<, >>, између аритметичких и релацијских Остали: између релацијских и логичких: &, ^, Доделе скоро најнижи приоритет Асоцијативност 3/22

Битовски оператори: таблице А & B A B A ^ B ~A 4/22

Оператори над битовима: битовско и & - битовско и врши се конјункција појединачних битова два аргумента i-ти бит резултата је конјункција i-тих битова аргумената Пример: хексадекадно: 0x000000CF & 0x0000003F = 0x0000000F декадно: 207 & 63 = 15 207 & 63 = 15 00000000000000000000000011001111 207 & 00000000000000000000000000111111 63 ================================= 00000000000000000000000000001111 15 5/22

Оператори над битовима: битовско или - битовско или врши се дисјункција појединачних битова два аргумента i-ти бит резултата је дисјункција i-тих битова аргумената Пример: хексадекадно: 0x000000CF 0x0000003F = 0x000000FF декадно: 207 63 = 255 00000000000000000000000011001111 207 00000000000000000000000000111111 63 ================================= 00000000000000000000000011111111 255 6/22

Оператори над битовима: битовска негација ~ - битовска негација, тзв. једноструки комплемент врши се комплементирање појединачних битова аргумента i-ти бит резултата је комплемент i-тог бита аргумента Пример: ~63 = -64 (означена целобројна константа) 00000000000000000000000000111111 63 ======================== 11111111111111111111111111000000-64 7/22

Оператори над битовима: битовска ексклузивна дисјункција (xor) ^ - битовско или-или врши се ексклузивна дисјункција појединачних битова два аргумента i-ти бит резултата је ексклузивна дисјункција i-тих битова аргумената Пример: хексадекадно: 0x000000CF ^ 0x0000003F = 0x000000F0 декадно: 207 ^63 = 240 00000000000000000000000011001111 207 ^ 00000000000000000000000000111111 63 ================================= 00000000000000000000000011110000 240 8/22

Оператори над битовима: померање улево << лево померање (шифтовање) Битови првог аргумента померају се улево за број позиција наведен као други аргумент Почетни (леви) битови првог аргумента се губе а на завршна места резултата уписују се нуле Пример: (хексадекадно : 0x0000003F << 3 = 0x000001F8) (декадно : 63 << 3 = 504) 00000000000000000000000000111111 63 ========================= << 3 00000000000000000000000111111000 504 Лево померање за једну позицију одговара множењу са два Лево померање за n позиција одговара множењу са 2 n 9/22

Оператори над битовима: померање удесно >> десно померање (шифтовање) Битови првог аргумента померају се удесно за број позиција наведен као други аргумент Крајњи (десни) битови првог аргумента се губе Почетни (леви) битови првог аргумента се попуњавају нулама (логичко померање) ИЛИ попуњавају битовима знака (аритметичко померање) Аритметичко померање за једно место одговара дељењу првог аргумента са 2 10/22

Оператори над битовима: померање удесно Тип првог аргумента Неозначен логичко померање Означен аритметичко померање Пример: (хексадекадно : 0x0000003F >> 3 = 0x00000007) (декадно : 63 >> 3 = 7) 00000000000000000000000000111111 63 ======================== >> 3 00000000000000000000000000000111 7 11/22

Логички оператори vs оператори над битовима Пример: Вредност израза 1 && 2 je 1 Вредност израза 1&2 је 0 1 & 2 = 0 00000000000000000000000000000001 1 & 00000000000000000000000000000010 2 ========================= 00000000000000000000000000000000 0 12/22

Примена битовских оператора Битовски оператори се често примењују да би модификовали битове неког броја уз помоћ тзв. маске Маска: специјално припремљена константа којом се, уз помоћ битовских оператора, модификују битови неког броја Маска се такође гради применом битовски оператора Маска се бира према особинама битовских оператора 13/22

Примена битовског и Особина битовске конјункције је да је за сваки бит b Вредност b & 0 је 0 Вредност b & 1 је b Последица: број n у битовској конјункцији са неком маском производи резултат који има бит 0 на свакој позицији на којој маска има бит 0, а бит једнак одговарајућем биту броја n на свим осталим позицијама 14/22

Примена битовског и - пример ЗАДАТАК: Написати наредбу која на i-то место броја n поставља бит 0, а остале битове оставља неизмењеним. РЕШЕЊЕ: n & маска1 маска1: сви битови 1 осим бита на позицији i који је 0 маска1: негацијом маске маска2 која има све битове 0 осим бита на позицији i који је 1 маска2: померањем броја 1 за i места улево n & (~(1 << i)) 15/22

Примена битовског или Особина битовске дисјункције је да је за сваки бит b Вредност b 1 је 1 Вредност b 0 је b Последица: број n у битовској дисјункцији са неком маском производи резултат који има бит 1 на свакој позицији на којој маска има бит 1, а бит једнак одговарајућем биту броја n на свим осталим позицијама 16/22

Примена битовског или - пример ЗАДАТАК: Написати наредбу која на i-то место броја n поставља бит 1, а остале битове оставља неизмењеним. РЕШЕЊЕ: n маска маска: сви битови 0 осим бита на позицији i који је 1 маска: померањем броја 1 за i места улево n (1 << i) 17/22

Примена битовског илиили (xor) Особина битовске ексклузивне дисјункције је да је за сваки бит b Вредност b ^ 0 је b Вредност b ^ 1 је ~b Последица: број n у битовској ексклузивној дисјункцији са неком маском производи резултат који, у односу на број n, има инвертовани бит на оним позицијама на којим маска има бит 1, а неизмењени бит на осталим позицијама 18/22

Примена битовског илиили - пример ЗАДАТАК: Написати наредбу која инвертује бит на i-том месту броја n. РЕШЕЊЕ: n ^ маска маска: сви битови 0 осим бита на позицији i који је 1 маска: померањем броја 1 за i места улево n ^ (1 << i) 19/22

Примена битовских оператора - резиме Поставити нуле на неке изабране позиције датог броја: битовска конјункција броја са маском која на тим изабраним позицијама има нуле а на осталим - јединице Поставити јединице на изабране позиције датог броја: битовска дисјункција броја са маском која има јединице на тим изабраним позицијама а на осталим позицијама нуле Инвертовати битове на неким изабраним позицијама датог броја: Битовска ексклузивна дисјункција броја са маском која има јединице на тим изабраним позицијама а на осталим позицијама нуле 20/22

Оператори над битовима: пример Програм који размењује задати пар битова у учитаном броју; битови се задају као аргументи командне линије #include <stdio.h> unsigned Trampa(unsigned n, int i, int j); main(int argc, char **argv) { unsigned x; /*broj sa standardnog ulaza ciji se bitovi razmenjuju*/ int i,j; /*pozicije bitova za trampu*/ /*ocitavanje argumenata komandne linije i broja sa standarnog ulaza*/ sscanf(argv[1], %d, &i); sscanf(argv[2], %d, &j); scanf( %u, &x); printf( \n Nakon trampe vrednost unetog broja je %u \n, Trampa(x,i,j)); } 21/22

Пример функција Trampa unsigned Trampa(unsigned n, int i, int j) { //ako se bit na poziciji i razlikuje od bita na poziciji j, treba ih invertovati if (((n>>i)&1)!= ((n>>j)&1)) nˆ= (1<<i) (1<<j); return n; } 22/22