webForumDet fria alternativet

Konvertering mellan baser (matte)

Programmeringur Programmering - Övrigt

10 svar · 1 388 visningar · startad av M@rtin

M@rtinMedlem sedan dec. 19992 085 inlägg
#1

Inte helt rätt forum kanske men det finns ju inget matematikforum :(

Är det någon som vet något smart sätt att konvertera tal mellan olika baser? Jag vill konvertera från bas 62 till bas 4 (inte de mest vanliga baserna jag vet ;) )

Problemet är också att mina tal är så stora så att jag t.ex. inte kan använda mig av knepet att dela hela talet och kolla resten eller liknande algoritmer utan måste göra det typ tecken för tecken.

(Använder 0-9a-zA-Z för att få ihop till 62)

Någon som har någon smart algoritm som skulle fungera för detta? Behöver naturligtvis inte vara för just baserna 62 och 4.

Engine^Medlem sedan dec. 20003 887 inlägg
#2

Re: Konvertering mellan baser (matte)

62... :o

M@rtin skrev:

Problemet är också att mina tal är så stora så att jag t.ex. inte kan använda mig av knepet att dela hela talet och kolla resten eller liknande algoritmer utan måste göra det typ tecken för tecken.

http://www.tonymarston.net/php-mysql/converter.html

Den länken borde kunna hjälpa dig.

M@rtinMedlem sedan dec. 19992 085 inlägg
#3

Mycket bra sida, den har jag missat, är tyvärr inte så hemma på php men jag ska nog kunna klara av o reda ut begreppen där. Såg ut att vara precis vad jag letat efter :) Tackar!

Sang-draxMedlem sedan juli 2002581 inlägg
#4

Synd att 62 inte går jämnt upp i 4 -- annars hade det funnits ett lätt sätt. Nu tror jag du helt enkelt får dela med rester och så vidare.

Behöver naturligtvis inte vara för just baserna 62 och 4

Aha, det är t.ex. lätt från 16 till 2. Där kan man översätta siffra för siffra. Varje hexadecimal siffra svarar mot fyra binära siffror. Samma sak från 8 till 2, 4 till 2, 16 till 4 osv.

Engine^Medlem sedan dec. 20003 887 inlägg
#5

Sang-drax skrev:

Synd att 62 inte går jämnt upp i 4 -- annars hade det funnits ett lätt sätt. Nu tror jag du helt enkelt får dela med rester och så vidare.

Aha, det är t.ex. lätt från 16 till 2. Där kan man översätta siffra för siffra. Varje hexadecimal siffra svarar mot fyra binära siffror. Samma sak från 8 till 2, 4 till 2, 16 till 4 osv.

Det är specialfall och så ska man ju inte göra ;)

spangoMedlem sedan juni 20008 205 inlägg
#6

Re: Konvertering mellan baser (matte)

M@rtin skrev:

Problemet är också att mina tal är så stora så att jag t.ex. inte kan använda mig av knepet att dela hela talet och kolla resten eller liknande algoritmer utan måste göra det typ tecken för tecken.

Vad använder du för språk? Kan du inte använda bignums?

Sang-draxMedlem sedan juli 2002581 inlägg
#7

Engine^ skrev:

Det är specialfall och så ska man ju inte göra ;)

Varför? Martin sade ju att det inte behövde vara just 62 och 4.

M@rtinMedlem sedan dec. 19992 085 inlägg
#8

Använder ASP, har skrivit några egna bignum funktioner men det blir på tok för långsamt.

Sang-drax fungerar ditt sätt alltså mellan t.ex. bas 64 och 4? Att det är bas 64 är inte helt avgörande men det måste vara däromkring, helst inte mindre.

Sang-draxMedlem sedan juli 2002581 inlägg
#9

M@rtin skrev:

Sang-drax fungerar ditt sätt alltså mellan t.ex. bas 64 och 4?

Japp, eftersom 64 = 4*4*4.

Varje 64-siffra delas då upp i exakt tre 4-siffror.

Sang-draxMedlem sedan juli 2002581 inlägg
#10

Re: Konvertering mellan baser (matte)

M@rtin skrev:

Inte helt rätt forum kanske men det finns ju inget matematikforum

Lite konstigt egentligen, kanske http://www.webforum.nu/showthread.php?s=&threadid=125543&forumid=204 vore något?

M@rtinMedlem sedan dec. 19992 085 inlägg
#11

Åh va smart, perfekt lösning på mitt problem! Tack så mycket!

Ja ett matematikforum vore verkligen bra, men jag tror tyvärr inte jag har tid att moderera så jag vågar in skicka in nån ansökan.

243 ms totalt · 3 externa anrop · v20260731065814-full.c74b5be1
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
241 ms — hämta tråd, inlägg och bilagor (db)