Autor Zpráva
hunter_dave
Profil
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
hunter_dave:
bindec, opak k ní pak decbin.
_es
Profil
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
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 *
hunter_dave:
Docela pěkně je to popsáno na http://www.wikihow.com/Convert-from-Decimal-to-Binary
_es
Profil
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
Jde o binární (dvojkovou soustavu). Ale nechci fci .. to bych si našel. Jde mi o rozepsání té metody.
Sadamek
Profil
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
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
Sadamek:
Věděl bys jak to řešit se zápornýma číslama?
Sadamek
Profil
Myslíš jako udělat číslo na binár a před to mínus nebo jak? Dej příklad.
hunter_dave
Profil
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
Můžeš odstranit mínus a hned ho dát do výpisu.
if (cislo<0) {
    cislo = cislo.substring(1);
    vystup+='-';
    }
hunter_dave
Profil
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
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
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 :)

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0