Maskování dekadických čísel

Odpovědět
Ludek
Příspěvky: 289
Registrován: 02 pro 2019, 08:14
Reputation: 0
Bydliště: České Budějovice

Maskování dekadických čísel

Příspěvek od Ludek » 29 lis 2020, 10:24

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?

ondraN
Příspěvky: 932
Registrován: 08 srp 2019, 20:01
Reputation: 0

Re: Maskování dekadických čísel

Příspěvek od ondraN » 29 lis 2020, 12:34

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é

Kód: Vybrat vše

unsigned long  x=1234567891233;
x=x & 0xFFFFUL;
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é

Kód: Vybrat vše

unsigned long x=123456789;
x=x%1000;
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.

Ludek
Příspěvky: 289
Registrován: 02 pro 2019, 08:14
Reputation: 0
Bydliště: České Budějovice

Re: Maskování dekadických čísel

Příspěvek od Ludek » 29 lis 2020, 14:10

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

KamilV
Příspěvky: 479
Registrován: 03 dub 2018, 15:27
Reputation: 0
Bydliště: Olomouc

Re: Maskování dekadických čísel

Příspěvek od KamilV » 30 lis 2020, 09:03

Ludek píše:
29 lis 2020, 14:10
příklad : (vše mám unsigned long)
x = 3456789;
x=x & 0xFFFFUL;
výsledek : 48917
Což je naprosto správný výsledek.
Chyba byla pravděpodobně v tom, že jsi od spodních 16 bitů očekával něco jiného a v důsledku toho jsi správný výsledky považoval za chybný.

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 10 hostů