Kezdőoldal » Számítástechnika » Programozás » Tizes számrendszerbeli szám...

Tizes számrendszerbeli szám számjegyeinek felcserélése bitműveletekkel hogyan?

Figyelt kérdés

Kizárólag bitműveletek alkalmazásával felcserélhetőek egy tetszőleges tizes számrendszerbeli pozitív szám számjegyei?

Mennyire bonyolult ezt megvalósítani, mi lenne az algoritmus?

Kettes számrendszerbe konvertálás nélkül, kizárólag bitműveletek végrehajtásával érdekelne a dolog.

15=51

159=951 stb

Ilyenre gondolok.



2019. jan. 3. 17:57
1 2
 11/14 tabaki ***** válasza:

@#11:

Örülök, hogy szóba hoztad a BCD-t, mert tegnap nekem is eszembe jutott, de szerintem annyira nem az, amire Kérdező vágyik, hogy nem volt merszem beküldeni a megírt hozzászólásomat. De ha már megemlítetted...


Nem jártam utána, de binárisan kódolt decimális számokkal valószínűleg meg lehet csinálni. Nem pont a BcdUnitra gondolok, hanem arra, hogy esetleg te magad ügyeskeded bele a számjegyeket egy nagyobbacska egész típusba. Ez persze nem éppen tetszőleges szám, hanem mondjuk qword esetén maximum 16 jegyű. Az ötletem fő hamissága azonban az, hogy a gép alaphelyzetben nem ilyen módon tárolja a számokat, tehát előkészítésül át kell kódolnod erre a formára, végül pedig vissza kell alakítanod az eredményt -- gondolom, mindkettőhöz szükség van a kettes számrendszerre. A soványka igazsága meg csak annyi, hogy maga a szűkebben vett feladat, a számjegyek felcserélése lenne elvégezhető bittologatással, maszkolással és effélékkel. Valami BCD-számokra épülő program esetén akár értelme is lehetne, de egyetlen érdekesség kedvéért többe kerülne a leves, mint a hús, nem beszélve a bevitel-kivitel körüli „tisztátalanságokról”, hiszen ott pont az kell, amit ki akarsz kerülni. A BCD amúgyis eléggé hasonlít a számok stringként való kezelésére, amit viszont kényelmesebb, hétköznapi utasításokkal intézhetsz -- csak éppen vélhetőleg éppen ahelyett próbáltál volna valami érdekesebb megoldást keresni.

2019. jan. 4. 07:22
Hasznos számodra ez a válasz?
 12/14 A kérdező kommentje:
Köszönöm a részletes leírást.
2019. jan. 4. 16:30
 13/14 anonim ***** válasza:
Felejtsd el. Szimplán binárisan nem tudod megoldani.
2019. jan. 5. 00:52
Hasznos számodra ez a válasz?
 14/14 anonim ***** válasza:

#1 vagyok:


Ahhoz hogy ezt meg lehessen tenni, a számrendszerek (2-es és a 10-es) helyiértékei között kellene összefüggést felhozni!


Ismétlem magam:A kettes, és a tízes számrendszer helyiértékei (1,2,4,... és 1,10,100,...) semmilyen fedésben nincsenek egymással, tehát kizárt hogy konverzió nélkül megoldjad.

2019. jan. 5. 16:41
Hasznos számodra ez a válasz?
1 2

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!