Mám dotaz. Binární čísla umím maskovat, ale jak to jde s číslem dekadickým?
Příklad.
Mám číslo long a zajímá mě pouze spodních 16 bitů - ty horní né.
Když to rovnou převedu do unsigned int, tak to samozřejmě je nesmysl...
Jak se jich zbavím? Jak z toho udělám to dolní číslo?
Maskování dekadických čísel
Re: Maskování dekadických čísel
Nějak jsem nepochopil jak to myslíš s dekadickým číslem a dále uvádíš že tě zajímá jen dolních 16bitů.
Pokud tě zajímá jen dolních 16bitů z longu, je to jednoduché
používá se operace and pak máš v x jen těch 16bitů (to UL za 0xFFFF znamená že je to typově unsigned long)
S dekadickými čísly, když potřebuješ třeba jen poslední tři řády (jednotky, desítky, stovky) je to následovné
tady bude v x 789;
používá se operace modulo (%), což je zbytek po celočíselném dělení, v tom příkladu tisíci.
Pokud tě zajímá jen dolních 16bitů z longu, je to jednoduché
Kód: Vybrat vše
unsigned long x=1234567891233;
x=x & 0xFFFFUL;
S dekadickými čísly, když potřebuješ třeba jen poslední tři řády (jednotky, desítky, stovky) je to následovné
Kód: Vybrat vše
unsigned long x=123456789;
x=x%1000;
používá se operace modulo (%), což je zbytek po celočíselném dělení, v tom příkladu tisíci.
Re: Maskování dekadických čísel
Ahoj Ondro,
tak to nefunguje, mám stejné výsledky jako jsem si hrál já.
příklad : (vše mám unsigned long)
x = 3456789;
x=x & 0xFFFFUL;
výsledek : 48917
ono to funguje POUZE na HEX čísla, což je logické,
ALE z těmi % to šlape !!!!!
díky MOC
tak to nefunguje, mám stejné výsledky jako jsem si hrál já.
příklad : (vše mám unsigned long)
x = 3456789;
x=x & 0xFFFFUL;
výsledek : 48917
ono to funguje POUZE na HEX čísla, což je logické,
ALE z těmi % to šlape !!!!!
díky MOC
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 10 hostů