<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>IT blog &#187; binární soustava</title>
	<atom:link href="http://szj.cz/tag/binarni-soustava/feed/" rel="self" type="application/rss+xml" />
	<link>http://szj.cz</link>
	<description>internet, linux, novinky, programování</description>
	<lastBuildDate>Sat, 12 Sep 2015 11:14:32 +0000</lastBuildDate>
	<language>cs-CZ</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=4.2.2</generator>
	<item>
		<title>Převod desetinného čísla do binární reprezentace</title>
		<link>http://szj.cz/prevod-desetinneho-cisla-do-binarni-reprezentace/</link>
		<comments>http://szj.cz/prevod-desetinneho-cisla-do-binarni-reprezentace/#comments</comments>
		<pubDate>Sat, 24 Nov 2012 17:38:11 +0000</pubDate>
		<dc:creator><![CDATA[fredomgc]]></dc:creator>
				<category><![CDATA[Ostatní]]></category>
		<category><![CDATA[binární soustava]]></category>
		<category><![CDATA[desetinná čárka]]></category>
		<category><![CDATA[desetinné číslo]]></category>
		<category><![CDATA[desítková soustava]]></category>
		<category><![CDATA[dvojková soustava]]></category>
		<category><![CDATA[fixní čárka]]></category>
		<category><![CDATA[plovoucí čárka]]></category>
		<category><![CDATA[převod]]></category>

		<guid isPermaLink="false">http://szj.cz/?p=514</guid>
		<description><![CDATA[Tento text volně navazuje na článek popisující&#160;transformaci&#160;celého čísla do dvojkové soustavy. V několika ohledech na něj dokonce i odkazuje, proto doporučuji si nejprve prostudovat v něm popsané postupy. Následně můžete směle přikročit k převodu čísla s desetinnou čárkou. Na úvod bude vhodné říci, že binární číslo pro aritmetické účely není jedinou možnou podobou údaje. Další [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Tento text volně navazuje na <a href="http://szj.cz/prevod-celeho-cisla-do-binarni-reprezentace/">článek</a> popisující&nbsp;transformaci&nbsp;celého čísla do dvojkové soustavy. V několika ohledech na něj dokonce i odkazuje, proto doporučuji si nejprve prostudovat v něm popsané postupy. Následně můžete směle přikročit k převodu čísla s desetinnou čárkou.</p>
<p>Na úvod bude vhodné říci, že binární číslo pro aritmetické účely není jedinou možnou podobou údaje. Další formy symbolizují počítače a jejich způsoby ukládání binárních dat pro své vlastní účely.</p>
<p>Nejprve začnu převodem čísla v desítkové soustavě pro další matematické využití. Konkrétně půjde o <strong>10,625<sub>10</sub></strong>. Oddělím přitom od sebe celou a desetinnou část. Nyní se budu věnovat pouze <strong>0,625</strong><sub><strong>10</strong></sub>. Převod čísla <strong>10</strong> popisuje již zmíněný předcházející článek.</p>
<ul>
<li>Mohu od <strong>0,625</strong> odečíst <strong>1/2</strong> bez toho, aby se dostal do záporných hodnot? <strong>ANO, učiním tak.</strong></li>
<li>Mohu od <strong>0,125</strong>&nbsp;odečíst&nbsp;<strong>1/4</strong> bez toho, aby se dostal do záporných hodnot?&nbsp;<strong>NE</strong></li>
<li>Vezměme opět <strong>0,125</strong>. Mohu odečíst <strong>1/8</strong> bez toho, abych se dostal do záporných hodnot? <strong>ANO, učiním tak.</strong></li>
<li>Zbývá <strong>nula</strong>, a proto převod <strong>končí</strong>. Pokud by se tak nestalo, pokračovali bychom dále s <strong>1/16</strong>, <strong>1/32</strong>, <strong>1/64 </strong>&#8230;</li>
</ul>
<p>Nyní nahradíme všechny odpovědi <strong>ANO</strong> jedničkou a tvrzení <strong>NE</strong> nulou. Výsledek zapisujeme směrem do horního údaje dolů. Získáváme tedy <strong><span style="color: #ff0000;">101</span><sub>2</sub></strong>. Přidáme-li <strong>10<sub>10</sub></strong> v binární soustavě jako <strong><span style="color: #333399;">1010</span><sub>2</sub></strong>, máme výsledek v podobě <strong><span style="color: #333399;">1010</span>,<span style="color: #ff0000;">101</span><sub>2</sub></strong>.</p>
<p>Nyní přichází na řadu reprezentace pro hardware počítače. Lze se vydat celkem dvěma cestami &#8211; pevnou nebo plovoucí desetinnou čárkou.</p>
<h2>Pevná čárka</h2>
<p>Nejprve si zvolíme počet míst za celou částí čísla, jenž budeme uchovávat. V našem případě půjde o <strong>3</strong>. Dále musíme znát základ soustavy, do které převádíme, tedy <strong>2</strong>. Provedeme jednoduchý výpočet <strong>2<sup>3</sup></strong> a tímto mezivýsledkem vynásobíme vstupní číslo, <strong>-10,625<sub>10</sub></strong> (povšimněte si přidaného znamínka mínus, jenž nám zajistí zajímavější postup). Pochopitelně <strong>-10,625 x 8 = -85</strong>. Z tohoto dalšího mezivýsledku oddělíme celou část (tedy <strong>-85</strong>) a tu následně převedeme do binární podoby. Využít můžeme například doplňkový kód &#8211; <strong>10101011<sub>2</sub></strong>.</p>
<h2>Plovoucí čárka</h2>
<p>Transformace do podoby s proměnlivou řadovou čárkou se řadí mezi složitější operace. Podrobněji se ji například věnuje <a href="http://kipirvine.com/asm/workbook/floating_tut.htm">tento tutoriál</a>. Výsledná hodnota se skládá celkem ze tří částí:</p>
<ul>
<li>1 bit pro znaménko (0 pro kladné číslo, 1 symbolizuje záporný údaj)</li>
<li>8 bitů pro exponent</li>
<li><strong>mantissa</strong> (normovaný tvar) &#8211; 23 bitů</li>
</ul>
<p>Využijeme&nbsp;<strong>1010,101<sub>2</sub> </strong>z prvního příkladu a provede úpravu na tvar s exponentem, jenž zajistí existenci jediné číslice před desetinou čárkou -&gt;&nbsp;<strong>1,<span style="color: #ff0000;">010101</span> x 2<sup>3</sup></strong>. Nyní zformujeme druhou část, k exponentu <strong>3</strong> přičteme <strong>127</strong> a provedeme převod do dvojkové soustavy -&gt;<strong> 10000010<sub>2</sub></strong>. Zbývá <strong>mantissa</strong>, kterou však již již v podstatě disponujeme. Protože normovaný tvar neuchovává jedničku před čárkou využijeme pouze&nbsp;&nbsp;<strong>,<span style="color: #ff0000;">010101</span></strong>. Výsledek vypadá takto:</p>
<p><strong>0&nbsp;10000010&nbsp;<span style="color: #ff0000;">010101</span>00000000000000000</strong></p>
<p>K ověření poslouží tato <a href="http://www.ajdesigner.com/fl_ieee_754_word/ieee_32_bit_word.php">pomůcka</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://szj.cz/prevod-desetinneho-cisla-do-binarni-reprezentace/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Převod celého čísla do binární reprezentace</title>
		<link>http://szj.cz/prevod-celeho-cisla-do-binarni-reprezentace/</link>
		<comments>http://szj.cz/prevod-celeho-cisla-do-binarni-reprezentace/#comments</comments>
		<pubDate>Fri, 16 Nov 2012 15:57:24 +0000</pubDate>
		<dc:creator><![CDATA[fredomgc]]></dc:creator>
				<category><![CDATA[Ostatní]]></category>
		<category><![CDATA[binární soustava]]></category>
		<category><![CDATA[desítková soustava]]></category>
		<category><![CDATA[dvojková soustava]]></category>
		<category><![CDATA[převod]]></category>

		<guid isPermaLink="false">http://szj.cz/?p=488</guid>
		<description><![CDATA[Následující text přehledně popisuje převod celého čísla v desítkové soustavě do binární podoby s pomocí několika rozdílných metod. Výpočet hodnoty v dvojkové reprezentaci Mezi jeden z nejzákladnějších úkonů patří převedení desítkového údaje do binární podoby. K dosažení tohoto cíle existuje několik metod, osobně za obzvláště efektivní považují postupné dělení. Zvolme si číslo 10010, kde dolní [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Následující text přehledně popisuje převod celého čísla v desítkové soustavě do binární podoby s pomocí několika rozdílných metod.</p>
<h2>Výpočet hodnoty v dvojkové reprezentaci</h2>
<p>Mezi jeden z nejzákladnějších úkonů patří převedení desítkového údaje do binární podoby. K dosažení tohoto cíle existuje několik metod, osobně za obzvláště efektivní považují postupné dělení. Zvolme si číslo <strong>100<sub>10</sub></strong>, kde dolní index značí použitou soustavu a proveďme samotný přepočet.</p>
<ul>
<li>100 : 2 = 50, zbytek <strong>0</strong></li>
<li>50 : 2 = 25, zbytek <strong>0</strong></li>
<li>25 : 2 = 12, zbytek <strong>1</strong></li>
<li>12 : 2 = 6, zbytek <strong>0</strong></li>
<li>6 : 2 = 3, zbytek <strong>0</strong></li>
<li>3 : 2 = 1, zbytek <strong>1</strong></li>
<li>1 : 2 = 0, zbytek <strong>1</strong></li>
</ul>
<div>Postupně celočíselně dělíme zbývající části původního čísla dvojkou a pamatujeme si zbytky. Ty následně zapíšeme <strong>v obráceném pořadí</strong> a získáváme výsledný údaj &#8211; <strong>1100100<sub>2</sub></strong>.</div>
<h2>Dvojkově desítkový kód</h2>
<p>Následující způsob převodu čísla si nejprve vstupní informaci rozdělí na jednotlivé cifry v desítkové soustavě a provede jejich transformaci s pomocí výše zmíněného postupu do binární podoby. Číslo <strong>100</strong> se tedy promění na tři části &#8211; <strong>1</strong>, <strong>0</strong> a <strong>0</strong>. Každá třetina využívá k uchování informace čtyři pozice, výsledek vzniká jejich spojením.</p>
<ul>
<li>1<sub>10</sub> = 0001<sub>2</sub></li>
<li>0<sub>10</sub> = 0000<sub>2</sub></li>
<li>0<sub>10</sub> = 0000<sub>2</sub></li>
</ul>
<div>Dohromady tedy <strong>000100000000</strong><sub>2</sub>.</div>
<h2>Přímý kód</h2>
<p>Do hry nám vstupuje nutnost uložení i záporných záznamů. S jednoduchým řešením přichází princip vložení speciálního bitu, jenž indikuje přítomnost znaménka. Nejprve provedeme převod do binární podoby a poté na začátek přidáme příslušný bit (<strong>1</strong> pro záporné číslo, kladný údaj získá <strong>0</strong>).</p>
<ul>
<li>100<sub>10</sub> = <span style="color: #ff0000;">0</span>1100100<sub>2</sub></li>
<li>-100<sub>10</sub> = <span style="color: #ff0000;">1</span>1100100<sub>2</sub></li>
</ul>
<h2>Aditivní kód</h2>
<p>S opravdu zajímavým řešením se o slovo hlásí následující princip vyžadující znalost určité konstanty. Ta se po získání dvojkové podoby k mezivýsledku binárně připočítá. Jako konstantu v tomto případě zvolíme např. <strong>128</strong> (2<sup>7</sup>), což se rovná <strong>10000000<sub>2</sub></strong>.</p>
<ul>
<li>100<sub>10</sub> = 1100100<sub>2</sub> + 10000000<sub>2</sub> = <strong>11100100<sub>2</sub></strong></li>
</ul>
<div>V případě záporného údaje pro rychlý výpočet použijeme odlišný postup. Nejprve od konstanty v desítkové soustavě odečteme absolutní hodnotu vstupního údaje a výsledek převedeme do dvojkové reprezentace.</div>
<ul>
<li>-100<sub>10</sub> = 128 &#8211; |-100| = 28<sub>10</sub></li>
<li>28<sub>10</sub> = <strong>11100<sub>2</sub></strong></li>
</ul>
<h2>Inverzní kód</h2>
<p>V případě kladného čísla se inverzní kód nijak neprojeví, spoléhá totiž na standardní převod do binární soustavy. U záporného údaje provede logickou negaci všech cifer a na začátek přidá bit o hodnotě 1 symbolizující znaménko.</p>
<ul>
<li>na -100 aplikujeme absolutní hodnotu</li>
<li>100<sub>10</sub> = 1100100<sub>2</sub> <em>(převod do dvojkové podoby)</em></li>
<li>0011011 <em>(logická negace)</em></li>
<li><span style="color: #ff0000;">1</span>0011011 <em>(přidání bitu)</em></li>
</ul>
<h2>Doplňkový kód</h2>
<p>S podobným principem jako inverzní kód přichází i tato metoda. Kladná čísla opět nechává netknutá. U záporných také neguje cifry, přičemž navíc přidává binární připočítání hodnoty 1. Závěrem vstupuje na scénu bit s hodnotou 1 umístěný na začátek k signalizaci znaménka.</p>
<ul>
<li>na -100 aplikujeme absolutní hodnotu</li>
<li>100<sub>10</sub> = 1100100<sub>2</sub> <em>(převod do dvojkové podoby)</em></li>
<li>0011011 <em>(logická negace)</em></li>
<li>0011100 <em>(binární přičtení hodnoty 1)</em></li>
<li><span style="color: #ff0000;">1</span>0011100 <em>(přidání bitu)</em></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://szj.cz/prevod-celeho-cisla-do-binarni-reprezentace/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
