<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
	>
<channel>
	<title>Comments on: Representing Data - Notes on Big And Little Endian Encodings</title>
	<atom:link href="http://ztkfg.com/2020/07/sorting-out-big-and-little-endian/feed/" rel="self" type="application/rss+xml" />
	<link>http://ztkfg.com/2020/07/sorting-out-big-and-little-endian/</link>
	<description>198.211.113.164 // 6326 273B 61A7 00AF 4CD9 5A7B 8C6C AB19 24A6 4DEC</description>
	<pubDate>Sat, 04 Apr 2026 10:15:35 +0000</pubDate>
	<generator>http://polimedia.us</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Adlai Chandrasekhar</title>
		<link>http://ztkfg.com/2020/07/sorting-out-big-and-little-endian/#comment-350</link>
		<dc:creator>Adlai Chandrasekhar</dc:creator>
		<pubDate>Tue, 20 Oct 2020 14:30:34 +0000</pubDate>
		<guid isPermaLink="false">http://ztkfg.com/?p=476#comment-350</guid>
		<description>At the risk of further extending the tangential nitpicks:

Bits within flag registers are typically modified one at a time, by whichever operation has caused that bit to have its value set.</description>
		<content:encoded><![CDATA[<p>At the risk of further extending the tangential nitpicks:</p>
<p>Bits within flag registers are typically modified one at a time, by whichever operation has caused that bit to have its value set.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: whaack</title>
		<link>http://ztkfg.com/2020/07/sorting-out-big-and-little-endian/#comment-334</link>
		<dc:creator>whaack</dc:creator>
		<pubDate>Thu, 23 Jul 2020 19:13:47 +0000</pubDate>
		<guid isPermaLink="false">http://ztkfg.com/?p=476#comment-334</guid>
		<description>Yes, my incorrect assumption was that although the machine could only access bits one-word-at-a-time, those bits did have some notion of an address. And I also believed that perhaps some machines were this 'mixed order monster.' 

From doing a bit more noobsearch I understand now that it's only the &lt;i&gt;bytes&lt;/i&gt; that have addresses. (Argueably a machine could be designed to only give addresses to words.)</description>
		<content:encoded><![CDATA[<p>Yes, my incorrect assumption was that although the machine could only access bits one-word-at-a-time, those bits did have some notion of an address. And I also believed that perhaps some machines were this 'mixed order monster.' </p>
<p>From doing a bit more noobsearch I understand now that it's only the <i>bytes</i> that have addresses. (Argueably a machine could be designed to only give addresses to words.)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jacob Welsh</title>
		<link>http://ztkfg.com/2020/07/sorting-out-big-and-little-endian/#comment-333</link>
		<dc:creator>Jacob Welsh</dc:creator>
		<pubDate>Thu, 23 Jul 2020 17:12:03 +0000</pubDate>
		<guid isPermaLink="false">http://ztkfg.com/?p=476#comment-333</guid>
		<description>It's not that I'm quibbling over an omitted detail though; it's right in the quoted sentence: an assumption that bits have addresses. Certainly you could have a machine where they do, but if it worked as you described, it would be a mixed-order monster rather than LE.

The reason people tend to think LE is somehow intrinsically "reversed" is our human convention of writing numbers BE. Incidentally there'd be some advantages if we'd gone the other way: we wouldn't have to right-align numeric fields in tables for the place values to line up, and addition/subtraction/multiplication would proceed left-to-right the same as writing.</description>
		<content:encoded><![CDATA[<p>It's not that I'm quibbling over an omitted detail though; it's right in the quoted sentence: an assumption that bits have addresses. Certainly you could have a machine where they do, but if it worked as you described, it would be a mixed-order monster rather than LE.</p>
<p>The reason people tend to think LE is somehow intrinsically "reversed" is our human convention of writing numbers BE. Incidentally there'd be some advantages if we'd gone the other way: we wouldn't have to right-align numeric fields in tables for the place values to line up, and addition/subtraction/multiplication would proceed left-to-right the same as writing.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: whaack</title>
		<link>http://ztkfg.com/2020/07/sorting-out-big-and-little-endian/#comment-331</link>
		<dc:creator>whaack</dc:creator>
		<pubDate>Thu, 23 Jul 2020 14:36:12 +0000</pubDate>
		<guid isPermaLink="false">http://ztkfg.com/?p=476#comment-331</guid>
		<description>I see. I knew that bits are not individually accessible, but thought it was okay to omit that detail from my overview.

So the LE machine may or may not have the internal bits of a byte reversed. But regardless of how the bits are layed out physically the external representation for a single byte is always displayed in big endian. With this understanding, I gather that how the bits are laid out on a per byte or per word level is black-box'd.</description>
		<content:encoded><![CDATA[<p>I see. I knew that bits are not individually accessible, but thought it was okay to omit that detail from my overview.</p>
<p>So the LE machine may or may not have the internal bits of a byte reversed. But regardless of how the bits are layed out physically the external representation for a single byte is always displayed in big endian. With this understanding, I gather that how the bits are laid out on a per byte or per word level is black-box'd.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jacob Welsh</title>
		<link>http://ztkfg.com/2020/07/sorting-out-big-and-little-endian/#comment-330</link>
		<dc:creator>Jacob Welsh</dc:creator>
		<pubDate>Sun, 19 Jul 2020 21:41:18 +0000</pubDate>
		<guid isPermaLink="false">http://ztkfg.com/?p=476#comment-330</guid>
		<description>&#62; However, within that byte, the bit with the lowest address is the most significant.

That's not quite it. What you seem to miss is that bits are not individually addressable in typical CPU instruction sets: you move data between registers and memory a word at a time or at the smallest a byte at a time. You can get at individual bits through shift/mask operations but those are defined arithmetically i.e. "shift right" always means shifting toward the least significant end, independent of how the bits are laid out physically.

The annoying appearance of mixed ordering comes into play with external representations with sub-byte-level symbols, such as a hex dump. With hex, it's a well entrenched convention to write the two half-byte digits ('nibbles") big-endian. Thus if you take a numeric 0x12345678, read it byte-at-a-time on an LE machine, and display each byte using the normal programming language hex facility, you get "78 56 34 12" rather than the 87654321 that the CPU and RAM could well be using internally.

In TRB, from what I've seen so far the extra byte reversal is done only for parsing/display of hashes, i.e. block and tx IDs and not numeric fields. &lt;a href="http://fixpoint.welshcomputing.com/2020/preliminary-report-on-the-bitcoind-hex-conversion-mess/" rel="nofollow"&gt;See also&lt;/a&gt;.</description>
		<content:encoded><![CDATA[<p>&gt; However, within that byte, the bit with the lowest address is the most significant.</p>
<p>That's not quite it. What you seem to miss is that bits are not individually addressable in typical CPU instruction sets: you move data between registers and memory a word at a time or at the smallest a byte at a time. You can get at individual bits through shift/mask operations but those are defined arithmetically i.e. "shift right" always means shifting toward the least significant end, independent of how the bits are laid out physically.</p>
<p>The annoying appearance of mixed ordering comes into play with external representations with sub-byte-level symbols, such as a hex dump. With hex, it's a well entrenched convention to write the two half-byte digits ('nibbles") big-endian. Thus if you take a numeric 0x12345678, read it byte-at-a-time on an LE machine, and display each byte using the normal programming language hex facility, you get "78 56 34 12" rather than the 87654321 that the CPU and RAM could well be using internally.</p>
<p>In TRB, from what I've seen so far the extra byte reversal is done only for parsing/display of hashes, i.e. block and tx IDs and not numeric fields. <a href="http://fixpoint.welshcomputing.com/2020/preliminary-report-on-the-bitcoind-hex-conversion-mess/" rel="nofollow">See also</a>.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
