<?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; big-endian</title>
	<atom:link href="http://szj.cz/tag/big-endian/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>UTF-16 a binární reprezentace</title>
		<link>http://szj.cz/utf-16-a-binarni-reprezentace/</link>
		<comments>http://szj.cz/utf-16-a-binarni-reprezentace/#comments</comments>
		<pubDate>Sun, 16 Dec 2012 15:39:04 +0000</pubDate>
		<dc:creator><![CDATA[fredomgc]]></dc:creator>
				<category><![CDATA[Ostatní]]></category>
		<category><![CDATA[big-endian]]></category>
		<category><![CDATA[endianita]]></category>
		<category><![CDATA[kódování]]></category>
		<category><![CDATA[little-endian]]></category>
		<category><![CDATA[Unicode]]></category>
		<category><![CDATA[UTF-16]]></category>

		<guid isPermaLink="false">http://szj.cz/?p=534</guid>
		<description><![CDATA[Následující článek navazuje na velmi podobný text, jenž popisoval převod do dvojkové soustavy v rámci kódování UTF-8.&#160;Z mého pohledu se&#160;transformace&#160;do binární reprezentace u UTF-16 provádí ještě jednodušeji než v případě UTF-8. Převádět budu slovo řepa&#160;a neobejdu se pochopitelně bez Unicode tabulky. Nejprve vyhledám znak ř. Dozvídám se hodnotu 15916 a ihned si spočítám podobu v [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Následující článek navazuje na velmi <a href="http://szj.cz/utf-8-a-binarni-i-hexadecimalni-reprezentace/">podobný text</a>, jenž popisoval převod do dvojkové soustavy v rámci kódování UTF-8.&nbsp;Z mého pohledu se&nbsp;transformace&nbsp;do binární reprezentace u UTF-16 provádí ještě jednodušeji než v případě UTF-8.</p>
<p>Převádět budu slovo <strong>řepa&nbsp;</strong>a neobejdu se pochopitelně bez <a href="http://unicode-table.com">Unicode tabulky</a>. Nejprve vyhledám znak <strong>ř</strong>. Dozvídám se hodnotu <strong>159<sub>16</sub></strong> a ihned si spočítám podobu v dvojkové soustavě &#8211; <strong>1 0101 1001<sub>2</sub></strong>. Nyní nastává fáze samotného kódování do UTF-16. S pomocí níže zobrazených pravidel nacházejících se například na <a href="http://cs.wikipedia.org/wiki/UTF-16#Zp.C5.AFsob_k.C3.B3dov.C3.A1n.C3.AD_znak.C5.AF">Wikipedii</a> určím počet dostupných bitů. Vkládat mohu pouze na místa označená jako <strong>x</strong>.</p>
<p>&nbsp;<a href="http://szj.cz/wp-content/uploads/2012/12/utf-16.png"><img class="aligncenter size-full wp-image-535" title="utf-16" src="http://szj.cz/wp-content/uploads/2012/12/utf-16.png" alt="UTF-16" width="535" height="82" /></a></p>
<p>Především si povšimněte, že v případě dvou bajtů ve své podstatě zapisuji pouze samotný binární kód. Teprve v případě čtyř bajtů nastupuje určitá forma režie. Písmeno <strong>ř</strong> tedy v UTF-16 vypadá takto &#8211;&nbsp;<strong>0000000101011001&nbsp;<sub>2</sub></strong>. Pro přehlednost a kratší zápis lze provést převod do šestnáctkové soustavy. Jak však patrně již správně tušíte, výsledek vypadá shodně jako zápis <strong>ř</strong> v Unicode, tedy <strong>0159<sub>16</sub></strong>. Obdobně postupuji i u dalších zbývajících znaků:</p>
<ul>
<li>ř &#8211;&nbsp;<strong>0000000101011001&nbsp;<sub>2</sub></strong> &#8211; <strong>0159<sub>16</sub></strong></li>
<li>e &#8211;&nbsp;<strong>0000000001100101&nbsp;<sub>2</sub></strong> &#8211; <strong>0065<sub>16</sub></strong></li>
<li>p &#8211;&nbsp;<strong>0000000001110000 &nbsp;<sub>2</sub></strong> &#8211; <strong>0070<sub>16</sub></strong></li>
<li>a &#8211;&nbsp;<strong>0000000001100001 &nbsp;<sub>2</sub></strong> &#8211; <strong>0061<sub>16</sub></strong></li>
</ul>
<p>&nbsp;K ověření doporučuji následující <a href="http://mlha.cz/unicode/utf8.php">nástroj</a>.</p>
<h2>Endianita</h2>
<p>Pro zajímavost dále uvedu, že UTF-16 v sobě nese informaci o použité endianitě. K tomuto účelu se využívá <a href="http://cs.wikipedia.org/wiki/UTF-8#BOM">BOM</a> (byte order mark). Existují dvě varianty:</p>
<ul>
<li><strong>big-endian</strong> &#8211; Na nejnižší adresu se ukládá nejvýznamnější bit. Následují další bity až po ten nejméně významný. V paměti proto nejprve narazíme na nejvýznamnější bit.</li>
<li><strong>little-endian</strong> &#8211; Nejnižší adresa obsahuje nejméně významný bit. Následující narůstající paměťové buňky slouží k ukládání bitů směrem k tomu nejvýznamnějšímu.</li>
</ul>
<p>Číslo <strong>0xAABBCCDD</strong> tedy bude uloženo následovně:</p>
<ul>
<li><strong>big-endian</strong> &#8211; <strong>AA</strong> <strong>BB</strong> <strong>CC</strong> <strong>DD</strong></li>
<li><strong>little-endian</strong> &#8211; <strong>DD</strong> <strong>CC</strong> <strong>BB</strong> <strong>AA</strong></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://szj.cz/utf-16-a-binarni-reprezentace/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
