» Poradna » Programy

Objasnění z manuálu

 |   |  Microsoft Windows 10 Chrome 86.0.4240.111

Ahoj,v manuálu se píše, že:###################Nastavíme sys[140] na hodnotu 20. Program v SDS-C následně podle jednotlivých bitů něco udělá (příklad): if (sys[140] & 1) prvni_bit_je_nastaven(); if (sys[140] & 2) druhy_bit_je_nastaven(); if (sys[140] & 4) treti_bit_je_nastaven(); if (sys[140] & 8) ctvrty_bit_je_nastaven(); if (sys[140] & 16) paty_bit_je_nastaven();Pro náš příklad, kdy do sys[140] nastavíme číslo 20, které je binárně 0b10100, se zavolají funkce paty_bit_je_nastaven a treti_bit_je_nastaven. Funkce je tedy zřejmá - stačí vhodně vytvořit vstupní údaj.###################Můžete mi to prosím někdo objasnit? Nechápu to.

Mohlo by vás také zajímat

Odpovědi na otázku

 |   |  Microsoft Windows 10 Chrome 86.0.4240.111
 |   |  Microsoft Windows 10 Chrome 86.0.4240.75

Manuál k jakému zařízení?

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows XP Mozilla 60.9
 |   |  Microsoft Windows 10 Chrome 86.0.4240.75

Asi chtějí říct, že tím, jaký byte vložíš do 140. pozice pole proměnné sys můžeš ovlivnit, které programové části kódu se při běhu programu spustí.

Souhlasím  |  Nesouhlasím  |  Odpovědět
avatar
 | Microsoft Windows 10 Firefox 78.0
avatar
 | Microsoft Windows 10 Firefox 78.0
 | Microsoft Windows 10 Firefox 78.0

Nepoznám SDS-C jazyk, ale myslím, že aj tam by mala platiť boolovská algebra.Je zaužívané, že:(sys & 1) testuje nultý bit a nie prvý ako je tam uvedené.pretože:2^0=1 -> nultý2^1=2 -> prvý2^2=4 -> druhý2^3=8 -> tretíatď.

Souhlasím  |  Nesouhlasím  |  Odpovědět

Související témata: Objasnění