Autor | Zpráva | ||
---|---|---|---|
hunter_dave Profil |
#1 · Zasláno: 6. 7. 2011, 18:39:56
Zdravím mám problém .. převod z binárního řetšzce do normalních dekadických čísel zvládám v pohodě. Ale nevím si rady jak celý proces obrátit. Na příklad binární číslo 11010110 odpovídá 214. Nevíte někdo jak dostat z 214 binární číslo 11010110?
|
||
panther Profil |
#2 · Zasláno: 6. 7. 2011, 18:41:57 · Upravil/a: panther
|
||
_es Profil |
#3 · Zasláno: 6. 7. 2011, 19:07:39 · Upravil/a: _es
hunter_dave:
„Nevíte někdo jak dostat z 214 binární číslo 11010110?“ Dostať odkiaľ kam? V akom programovacom jazyku alebo v čom? |
||
hunter_dave Profil |
#4 · Zasláno: 6. 7. 2011, 20:20:41
Nejde mi o funkci ... jde mi spíš o ten princip .. chápu to z binárního do decadickýho .. proste každej bit je mocnina čísla 2 a podle toho jestli je to 0 nebo 1 se to bere nebo ne. Pro tohle konkrétní číslo je to
BIT0 : 1 ... 1·2^7 = 128 BIT1 : 1 ... 1·2^6 = 64 BIT2 : 0 ... 0·2^5 = 0 BIT3 : 1 ... 1·2^4 = 16 BIT4 : 0 ... 0·2^3 = 0 BIT5 : 1 ... 1·2^2 = 4 BIT6 : 1 ... 1·2^1 = 2 BIT7 : 0 ... 0·2^0 = 0 to se sečte a vyjde číslo 214. Chtěl bych vědět jak to obrátit. |
||
nightfish_ Profil * |
#5 · Zasláno: 6. 7. 2011, 21:11:29
hunter_dave:
Docela pěkně je to popsáno na http://www.wikihow.com/Convert-from-Decimal-to-Binary |
||
_es Profil |
#6 · Zasláno: 7. 7. 2011, 07:26:59 · Upravil/a: _es
hunter_dave:
„proste každej bit je mocnina čísla 2 a podle toho jestli je to 0 nebo 1 se to bere nebo ne“ No a rovnako to platí aj pre inú ako dvojkovú číselnú sústavu, len je tých stavov pre každú číslicu viac. „Chtěl bych vědět jak to obrátit.“ Nenapísal si, o prevod v akom „prostredí“ ide, nejaké metódy už na to asi budeš mať k dispozícii, napríklad pre JS by si využil metódu toString pre prevod čísla na na jeho zápis v nejakej číselnej sústave, alebo funkciu parseInt pre prevod zápisu celých čísel v rôznych sústavách na celé čísla. |
||
hunter_dave Profil |
#7 · Zasláno: 8. 7. 2011, 19:28:27
Jde o binární (dvojkovou soustavu). Ale nechci fci .. to bych si našel. Jde mi o rozepsání té metody.
|
||
Sadamek Profil |
#8 · Zasláno: 9. 7. 2011, 19:09:08
Udělal jsem tu konverzi v javascriptu. Funguje do 255. Popřípadně ještě pomůžu s konverzí většího čísla. :)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=windows-1250"> <meta name="generator" content="PSPad editor, www.pspad.com"> <title></title> <script type="text/javascript"> <!-- function preved() { var x = 128; var cislo = document.getElementById('cislo').value; if (cislo>255) exit; // vyskoci z podprogramu var vystup = ""; for (var i = 0; i < 8; i++) { if (cislo >= x){ cislo = cislo - x; vystup+='1'; } else vystup+='0'; x=x/2; } document.getElementById('vysledek').innerHTML = vystup; } //--> </script> <style type="text/css"> <!-- #vysledek { background-color: #EEEEFF; padding: 5px; border: 1px blue solid; } //--> </style> </head> <body> <input type="text" id="cislo" value="0" size="1"> <input type="button" value="Preved" onclick="preved()"> Vysledek: <span id="vysledek">00000000</span> </body> </html> |
||
hunter_dave Profil |
#9 · Zasláno: 9. 7. 2011, 19:47:51
Díky tohle jsem potřeboval. Jenom si tam ještě upravim, aby klient mohl měnit i počet bitů převáděného čísla. Díky moc
|
||
hunter_dave Profil |
#10 · Zasláno: 11. 7. 2011, 00:00:16
Sadamek:
Věděl bys jak to řešit se zápornýma číslama? |
||
Sadamek Profil |
#11 · Zasláno: 11. 7. 2011, 00:12:42 · Upravil/a: Sadamek
Myslíš jako udělat číslo na binár a před to mínus nebo jak? Dej příklad.
|
||
hunter_dave Profil |
#12 · Zasláno: 11. 7. 2011, 00:25:15 · Upravil/a: hunter_dave
Sadamek:
jo přesně to .. napadlo me brát první bit jako znaménko př: 0 .. plus a 1 .. minus, ale určitě existují i jiné metody. Takhl by to mohlo něčemu vadit. Držme se například toho čísla 214. Normální zápis je 11010110. S tím znaménkem by to muselo být 011010110. Nevím jestli to něčemu nevadí. Obráceně to už pak zvládnu, ale jde mi o to jestli na to není lepší postup. |
||
Sadamek Profil |
#13 · Zasláno: 11. 7. 2011, 00:32:39
Můžeš odstranit mínus a hned ho dát do výpisu.
if (cislo<0) { cislo = cislo.substring(1); vystup+='-'; } |
||
hunter_dave Profil |
#14 · Zasláno: 11. 7. 2011, 00:37:38
Jo tohle mě napadlo jenom se ptám jestli existuje lepší způsob. Pokud například počítám s čísly později, může se stát, že narazim na problém s tim prvním bitem (znaménkem) podle mě se to určitě dá řešit i jinak. Nevíš jak?
|
||
Sadamek Profil |
#15 · Zasláno: 11. 7. 2011, 00:42:42
Tak to nevím. Normálně si to zpětně rozebereš, že první bit je znamínko a prostě ho dáš do výpisu a po té smázneš. Nevím jak by se to dalo jinak udělat. Zase vláčet další proměnnou by bylo myslím zbytečné.
|
||
hunter_dave Profil |
#16 · Zasláno: 11. 7. 2011, 00:45:37
Někde jsem čet něco o převracení celýho toho čísla, ale na tom bude ještě něco. I tak díky za pomoc :)
|
||
Časová prodleva: 13 let
|
0