Převody mezi soustavami
HackForum

| | |  |  | Ahojte lidi, potřeboval bych vědět, jak převádět mezi jednovými číselnými soustavami, tedy z desítkové do binární a naopak, do hexadecimální. Díky (odpovědět)
 |  | | Arnie. | 88.102.234.* | 26.10.2007 15:29 | 
 | 
 | 
 | 
| | | | re: Převody mezi soustavami | # | 
 |  | Použij kalkulačku ve vědeckém režimu nebo např. [link] a jestli se to chceš naučit sám tak si přečti [link] (odpovědět)
 |  | | Edited | 77.78.80.* | 26.10.2007 15:49 | 
 | 
 | 
 | 
| | | | re: Převody mezi soustavami | # | 
 |  | vezmi si, jak funguje soustava. Třeba desítková (. Máš číslo xyz v desítkové soustavě (DEC), které se dá vlastně rozepsat 
 x*100 + y * 10 + z *1 = x * 10^2 + y * 10^1 + z + 10^0
 
 číslo xyz v dvojkové soustavě (BIN) je:
 
 x*4 + y * 2 + z *1 = x * 2^2 + y * 2^1 + z + 2^0
 
 ------------
 a teď převody:
 
 z DEC do BIN:
 
 máme třeba číslo DEC 298.
 
 postup:
 
 delíme číslo dvoujkou tak dlouho, dokud nám nic nezbyde. Celočíselný výsledek dělení zapíšeme o řádek níž, zbytek vedle.
 
 298  |||| 0
 149 |||| 1
 74 |||| 0
 37 |||| 1
 18 |||| 0
 9 |||| 1
 4 |||| 0
 2 |||| 0
 1 |||| 1
 0
 
 ted si sepíšeme ty zbytky - 010101001 - a zapíšeme pospátku - 100101010 - tak a máme to :-) takže DEC 298 = BIN 100101010
 
 ---------------------
 
 z BIN do DEC:
 
 máme číslo BIN, třeba 111000111.
 
 podle toho, co jsme si řekli na začátku se tohle číslo dá rozepsat jako
 
 1*2^0 + 1*2^1 + 1*2^2 + 0*2^3 + 0*2^4 + 0*2^5 + 1*2^6+ 1*2^7+ 1*2^8 = 1 + 2 + 4 + 64 + 128 + 256 = 455.
 
 ------
 
 Z ostatníma soustavama je to dost podobné.
 
 ----------
 Get enlightened!
 (odpovědět)
 |  |  | 
 | 
 | 
| | | | re: Převody mezi soustavami | # | 
 |  | a ještě převod mezi HEX (šestnáctková soustava) a BIN je celkem rychlý: 
 z BIN do HEX:
 
 111110000011111 - číslice si rozdělíme do čtveřic:
 
 0111 1100 0001 1111 - každá čtveřice číslic v BIN představuje jednu číslici v HEX.
 
 0111 = DEC(1+2+4) = DEC(7) = HEX(7)
 1100 = DEC(8+4)= DEC(12) = HEX(C)
 0001 = HEX(1)
 1111 = DEC(15) = HEX(F)
 
 BIN(111110000011111)=HEX(7C1F)
 
 ----------
 Get enlightened!
 (odpovědět)
 |  |  | 
 | 
 | 
| | | | re: Převody mezi soustavami | # | 
 |  | mr.jj presne jak rika mr.Crow (odpovědět)
 |  | | ask@t |  |  200-358-168 | 26.10.2007 17:01 | 
 | 
 | 
 | 
| | | | re: Převody mezi soustavami | # | 
 |  | Díky, tak převody v DEC-BIN už mám naprogramovány.. Ted bych akorát potřeboval převody mezi DEC-HEX, máte někdo nějakej zdroják. Jinak díky (o; (odpovědět)
 |  | | Arnie. | 88.102.234.* | 26.10.2007 17:23 | 
 | 
 | 
 | 
| | | | re: Převody mezi soustavami | # | 
 |  | no, postup je podobný jako u DEC-BIN. 
 máš třeba číslo DEC(9544846). Dělíš tak dlouho 16, dokud ti nezbyde nula.
 
 || zbytky
 
 9544846 || 14 = e
 596553  || 8
 37284   || 4
 2330    || 10 = A
 145     || 1
 9       || 9
 0
 
 91A48E
 
 ----------
 Get enlightened!
 (odpovědět)
 |  |  | 
 | 
 | 
| | | | re: Převody mezi soustavami | # | 
 |  | a kód si vymyslíš snad sám. Stačí umět zjistit výsledek dělení a zbytek z dělení. 
 ----------
 Get enlightened!
 (odpovědět)
 |  |  | 
 | 
 | 
| | | | re: Převody mezi soustavami | # | 
 |  | [link] jeden z algoritmu co tam je, je i prevod mezi soustavami ;) Ne ze by se to tu neresilo uz nekolikrat :P
 
 ----------
 public static void main(String args[]){
 throw new UnsupportedOperationException("Not implemented!");
 }
 
 (odpovědět)
 |  |  | 
 | 
 | 
| | | | re: Převody mezi soustavami | # | 
 |  | a když už sme u toho tak proč si programátor plete halloween a vánoce? ;) 
 
 malej hint: 31 oct = 25 dec
 (odpovědět)
 |  | | polly | 62.245.78.* | 27.10.2007 12:08 | 
 | 
 | 
 |