Bitové operátory – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Bitové operátory – C / C++ – Fórum – Programujte.comBitové operátory – C / C++ – Fórum – Programujte.com

 

Dotem
~ Anonymní uživatel
5 příspěvků
26. 5. 2016   #1
-
0
-

Ahoj, som na kapitole Bitové operátory, no nedokážem pochopiť ich význam,chápem čo každý jeden robí , no žiadny praktický význam.Vďaka za vysvetlenie

Nahlásit jako SPAM
IP: 91.127.181.–
NeregistrovanyHookyns
~ Anonymní uživatel
62 příspěvků
26. 5. 2016   #2
-
0
-

Tak třeba pro implementaci WebSocket serveru potřebuješ binární operace, protože zprávy od klienta chodí zašifrované 4 bitovým klíčem, pomocí kterého je třeba XORem data dešifrovat. To je první věc co mě napadla.

Pak pokud zabrousíš k mikroprocesorů Atmel, tam se všechno dělá přes binární registry.

Využití je spousta, ale jsou to spíš nízkoúrovňové nebo síťové věci.

Nahlásit jako SPAM
IP: 195.178.73.–
26. 5. 2016   #3
-
0
-

Výhodou bitových operací je rychlost. Je to vhodné např. při čtení stavu klávesnice z portu jednočipu nebo naopak ovládání nějakého zařízení připojeného k portu. Umožňují zjišťovat a měnit stav jednotlivých bitů. Dále se to používá v parametrech funkcí - WinAPI je toho plné, kde nastavení chování funkce je dáno bitovou operací (často bitovým součtem) jednotlivých možných hodnot. Pak stačí jenden parametr místo "dlouhé nudle". Na jednočipech, které nemají algebru, lze z nich vytvořit komplet algebru.

hu

Nahlásit jako SPAM
IP: 195.178.67.–
BDS+3
Věrný člen
26. 5. 2016   #4
-
0
-

#1 Dotem
já nejčastěji využívám pro "flagy", jak  píše hlucheucho ve WinApi se to používá často. Kromě toho, je dost často využíváno flagů i v souborech pro úsporu místa, např. mp3, avi..

Nahlásit jako SPAM
IP: 185.69.69.–
W11 :)
peter
~ Anonymní uživatel
4016 příspěvků
27. 5. 2016   #5
-
0
-

"som na kapitole Bitové operátory"
link?
stranka z google?
A co ti na strance neni jasne? Knizka doma, kterou nevidime, nemuzeme komentovat.

Obecne se bitove operatory pouzivaji casto a kvuli rychlosti.
Napriklad na linuxu prava k souboru jsou dana treba jako 777, kde to bitove je rwx rwx rwx. Je rychlejsi ifem porovnat 1 bit nez 8 bitu (1 byte). Skoro 8x rychlejsi :)
U 64 bitovych instrukci se prenasi 64 bitu, to uz je 64x rychlejsi.
Podobne jsou resene ruzne dalsi priznaky.

Take mas v programu podminky? x>50 && x<100. V dalsim kroku cyklu se treba x nemeni, tak program uz si pamatuje predchozi vysledky. Je rychlejsi porovnat boolean true/false, ze hodnota je stejna jako predchozi, 1 bit neb porovnavat 8 bitu x s 8 bitu cisla 50 a 8 bitu x a 8 bitu cisla 100 znovu.

Potrebujes porovnat, zda jsou 3 cisla rovny nule?
x==0 && y==0 && z==0, parada, casove (8+8)+(8+8)+(8+8) bitovych operaci, 6x8
a co treba bitove to secist x | y | z == 0, (8 | 8 | 8 == 8), 4x8

Web RTC / Web-socket prenos XORovani zpravy .Coz se dela kvuli tomu, aby se neopakovala treba 100x bitova 0 a tim by mohlo zarizeni ztratit synchronizaci. Cili schopnost rozpoznat pocet prijatych bitu, bylo jich 100 nebo 101 nebo 99? Technika neni dokonala, nedokaze presne na tisiciny sekund rozlisovat.

Nahlásit jako SPAM
IP: 2001:718:2601:26c:9c9d:b9...–
peter
~ Anonymní uživatel
4016 příspěvků
27. 5. 2016   #6
-
0
-

Jo, dalsi pouziti treba v dekoderu obrazku, videa a hudby. Tam se koduji data do huffmanovych kodu. Coz je bitovy zapis jinak 8 bitoveho cisla podle cetnosti jeho vyskytu.
Priklad, mas knizku, 100.000 znaku. Spocitas cetnost znaku. A podle toho priradis huffmanuv kod. Bezne mas na znak 8 bitu. Ale kod ti nastavi pro nejcetnejsi znaky 2-3 bity a pro ty, ktere tam skoro nejsou treba 16. takze pak 100.000 znaku zakodujes treba na 30.000. Presne tohle ma v sobe i jpeg. Predtim se provedou ale jeste dalsi operace.

Nahlásit jako SPAM
IP: 2001:718:2601:26c:9c9d:b9...–
27. 5. 2016   #7
-
0
-

Porovnání umí běžná ALU udělat i s Bytem, uměla to už 8051, která vznikla v polovině sedmdesátých let. Cennou výhodou kombinace bitového XOR s JZ nebo s JNZ bylo, že nezasahovala příznaky. CJNE zase právě díky nastavení příznaku C umožňovala trojnásobné větvení (menší, větší, rovno). V okamžiku, kdy se měly porovnat vícebytové operandy, jednoznačně vítězila XOR spolu s OR a JZ/JNZ na rychlost i jednoduchost algoritmu.

U vícebitových procesorů bych očekával, že kromě práce s bitem a Bytem bude umět práci i s násobky Bytů jako např. 2 Byte a 4 Byte.

Další využití bitových operandů se mi vybavilo u 7-bitového kódování sms. V podstatě je to jednoduchá komprese. Základní ASCII tabulka obsahující jen angl. abecedu se vejde do rozsahu 0 - 127, to odpovídá 7 bitům, osmý bit v Bytu je vždy 0. Tento osmý bit se před odesláním sms u každého znaku vypustí, tzn. že je potřebat 7 Bytů pro osm znaků sms. Dá se to dobře provést pomocí bitových posunů, bitového OR.

Bitové operace se používají i u některých kontrolních mechanismů (tuším, že u CRC, ale to bych musel pogůglit).

hu

Nahlásit jako SPAM
IP: 195.178.67.–
peter
~ Anonymní uživatel
4016 příspěvků
27. 5. 2016   #8
-
0
-

Pravda, v pc bitove operace tam pracuji se vsemi 8 (16 atd) najednou, paralelne. Coz je taky vyhoda, proti porovnani > a <. Rychlostne to bude tedy trochu jinak, ale celkove stale rychlejsi se xor.
Jinak, u xor bacha, je to operace, ktera zahriva procesor. Aspon ty stare.

Nahlásit jako SPAM
IP: 2001:718:2601:26c:9c9d:b9...–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 38 hostů

Podobná vlákna

Clenske operatory — založil Alexej

Násobné operátory v C — založil pirat7777

Sablona - bin. operatory — založil Gadael

Bitove operace — založil Keny

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý