この文書はIEN 137の日本語訳です。 この文書の翻訳内容の正確さは保障できないため、 正確な知識を求める方は原文を参照してください。 翻訳者はこの文書によって読者が被り得る如何なる損害の責任をも負いません。
IEN 137 Danny Cohen U S C/I S I 1 April 1980 ON HOLY WARS AND A PLEA FOR PEACE 聖戦と平和の場所について INTRODUCTION 前書き This is an attempt to stop a war. I hope it is not too late and that somehow, magically perhaps, peace will prevail again. これは戦争を止める試みです。遅すぎずに魔法のように平和が再び戻ることを 願っています。 The latecomers into the arena believe that the issue is: "What is the proper byte order in messages?". 闘技場の最近の参加者は、問題点は「メッセージの適切なバイト順は何ですか?」 と考えています。 The root of the conflict lies much deeper than that. It is the question of which bit should travel first, the bit from the little end of the word, or the bit from the big end of the word? The followers of the former approach are called the Little-Endians, and the followers of the latter are called the Big-Endians. The details of the holy war between the Little-Endians and the Big-Endians are documented in [6] and described, in brief, in the Appendix. I recommend that you read it at this point. 紛争の根源はそれよりもはるかに深いところにあります。これはどのビットを最 初に移動するか、ワードの小さな端のビットからか、またはワードの大きな端の ビットからかのどちらの質問です?前者の方法に従う藻のはリトルエンディアン と呼ばれ、後者の方法に従う者はビッグエンディアンと呼ばれます。リトルエン ディアンとビッグエンディアン間の聖戦の詳細は[6]に文書化されており、簡単 に付録で説明しています。この時点でこれを読むことをお勧めします。 The above question arises from the serialization process which is performed on messages in order to send them through communication media. If the communication unit is a message - these problems have no meaning. If the units are computer "words" then one may ask in which order these words are sent, what is their size, but not in which order the elements of these words are sent, since they are sent virtually "at-once". If the unit of transmission is an 8-bit byte, similar questions about bytes are meaningful, but not the order of the elementary particles which constitute these bytes. 上記の問題は、通信メディアを介してメッセージを送信するためにメッセージに 対して実行される直列化処理から生じます。通信単位がメッセージの場合、この 問題はありません。単位がコンピュータの「ワード」である場合、このワードが 送信される順序とサイズは問題ですが、複数のワード要素が送信される順序は問 題ではありません。伝送単位が8ビットバイトの場合、バイトに関する同様の質 問は意味がありますが、これらのバイトを構成する基本粒子の順序は問題ではあ りません。 If the units of communication are bits, the "atoms" ("quarks"?) of computation, then the only meaningful question is the order in which bits are sent. 通信の単位がビットの場合、計算の「原子」(「クォーク」?)であるビットで ある場合、唯一の意味のある問いはビットが送信される順序です。 Obviously, this is actually the case for serial transmission. Most modern communication is based on a single stream of information ("bit-stream"). Hence, bits, rather than bytes or words, are the units of information which are actually transmitted over the communication channels such as wires and satellite connections. 明らかに、これは直列伝送の場合の問題です。最新の通信のほとんどは、単一の 情報列(「ビット列」)に基づいています。したがって、バイトやワードではな くビットは、有線や衛星接続などの通信チャネルを介して実際に送信される情報 の単位です。 Even though a great deal of effort, in both hardware and software, is dedicated to giving the appearance of byte or word communication, the basic fact remains: bits are communicated. ハードウェアとソフトウェアの両方で、バイトまたはワードで通信しているよう に見えることに多大な努力が行われていますが、基本的な事実が残っています。 ビットが通信されます。 Computer memory may be viewed as a linear sequence of bits, divided into bytes, words, pages and so on. Each unit is a subunit of the next level. This is, obviously, a hierarchical organization. コンピュータのメモリは、バイト、ワード、ページなどに分割されたビットの線 形列と見なすことができます。各単位は、次のレベルのサブ単位です。これは明 らかに、階層的な組織化です。 2 If the order is consistent, then such a sequence may be communicated successfully while both parties maintain their freedom to treat the bits as a set of groups of any arbitrary size. One party may treat a message as a "page", another as so many "words", or so many "bytes" or so many bits. If a consistent bit order is used, the "chunk-size" is of no consequence. 順序が一致している場合、両方の当事者がビットを任意のサイズでグループ化し て扱う自由を維持しながら、正常に通信できます。ある当事者はメッセージを 「ページ」、別の当事者は非常に多くの「ワード」、または非常に多くの「バイ ト」または非常に多くのビットとして扱うことがあります。一致したビット順序 が使用される場合、「塊の大きさ」は問題になりません。 If an inconsistent bit order is used, the chunk size must be understood and agreed upon by all parties. We will demonstrate some popular but inconsistent orders later. 順序の違うビット順を使用する場合、すべての関係者が塊の大きさを理解し、合 意する必要があります。よく見かける、順序の異なる順番については、後ほど説 明します。 In a consistent order, the bit-order, the byte-order, the word-order, the page-order, and all the other higher level orders are all the same. Hence, when considering a serial bit-stream, along a communication line for example, the "chunk" size which the originator of that stream has in mind is not important. 順序が一致している状況で、ビット順、バイト順、ワード順、ページ順、その他 すべての上位レベルの順番はすべて同じです。したがって、たとえば通信回線上 の直列ビット列を観察す津場合、その列の発信者が想定している「塊」の大きさ は問題になりません。 There are two possible consistent orders. One is starting with the narrow end of each word (aka "LSB") as the Little-Endians do, or starting with the wide end (aka "MSB") as their rivals, the Big-Endians, do. 順序の一致は2種類あります。1つ目は、リトルエンディアンのように各ワード の最下位端(別名「LSB」)から開始するか、対抗馬のビッグエンディアンのよ うに最上位端(別名「MSB」)から開始するかです。 In this note we usually use the following sample numbers: a "word" is a 32-bit quantity and is designated by a "W", and a "byte" is an 8-bit quantity which is designated by a "C" (for "Character", not to be confused with "B" for "Bit)". この文書では、通常、次のサンプル番号を使用します:「ワード」は32ビット量 で「W」で指定され、「バイト」は8ビット量で「C」で指定されます( これは 「Character:文字」で、「ビット」の「B」と混同しないためです)。 MEMORY ORDER メモリの順番 The first word in memory is designated as W0, by both regimes. Unfortunately, the harmony goes no further. メモリの最初のワードは、両陣営でW0として指定されます。残念ながら、考えの 一致はここまでです。 The Little-Endians assign B0 to the LSB of the words and B31 is the MSB. The Big-Endians do just the opposite, B0 is the MSB and B31 is the LSB. リトルエンディアン陣営はB0をワードのLSBに割り当てB31はMSBです。ビッグエ ンディアン陣営は正反対でB0はMSBでB31はLSBです。 By the way, if mathematicians had their way, every sequence would be numbered from ZERO up, not from ONE, as is traditionally done. If so, the first item would be called the "zeroth".... ところで、数学者のやり方では、すべての列は、伝統的に1からではなく0から 番号が付けられます。この場合、最初の要素は「ゼロ番」と呼ばれます。 Since most computers are not built by mathematicians, it is no wonder that some computers designate bits from B1 to B32, in either the Little-Endians' or the Big-Endians' order. These people probably would like to number their words from W1 up, just to be consistent. ほとんどのコンピューターは数学者が作ったのではないため、一部のコンピュー ターがB1からB32までのビットをリトルエンディアンまたはビッグエンディアン の順序で指定します。これらの人々は、おそらく整合性を保つために、自分の ワードにW1から番号を付けたいと思うでしょう。 Back to the main theme. We would like to illustrate the hierarchically consistent order graphically, but first we have to decide about the order in which computer words are written on paper. Do they go from left to right, or from right to left? この文書の主題に戻ります。階層的に一致した順序を図で説明したいと思います が、最初に、コンピューターのワードが紙に書かれている順序について決定する 必要があります。左から右に書くのか、右から左に書くのかです? 3 The English language, like most modern languages, suggests that we lay these computer words on paper from left to right, like this: 英語では、ほとんどの現代の言語と同様に、コンピューターのワードを紙の上で 次のように左から右へ書きます。 |---word0---|---word1---|---word2---|.... In order to be consistent, B0 should be to the left of B31. If the bytes in a word are designated as C0 through C3 then C0 is also to the left of C3. Hence we get: 整合性を保つために、B0はB31の左側になければなりません。ワード内のバイトが C0?C3と指定されている場合、C0もC3の左側にあります。したがって、次のよう になります。 |---word0---|---word1---|---word2---|.... |C0,C1,C2,C3|C0,C1,C2,C3|C0,C1,C2,C3|..... |B0......B31|B0......B31|B0......B31|...... If we also use the traditional convention, as introduced by our numbering system, the wide-end is on the left and the narrow-end is on the right. 我々の世界の数字の表記で導入されている伝統的な規則も使用する場合、上位桁 は左側に、下位桁は右側にあります。 Hence, the above is a perfectly consistent view of the world as depicted by the Big-Endians. Significance consistency decreases as the item numbers (address) increases. したがって、上記はビッグエンディアンによって描かれた世界の完全に整合した 見解です。アイテム番号(アドレス)が増えると、細かい値を示します。 Many computers share with the Big-Endians this view about order. In many of their diagrams the registers are connected such that when the word W(n) is shifted right, its LSB moves into the MSB of word W(n+1). 多くのコンピューターは、順番に関するこの見解から、ビッグエンディアンを採 用しています。これらの図の多くで、ワードW(n)で右シフトすると、そのLSBが ワードW(n+1)のMSBに移動するようにレジスタが接続されています。 English text strings are stored in the same order, with the first character in C0 of W0, the next in C1 of W0, and so on. 英語のテキスト文字列は同じ順序で保存され、最初の文字はW0のC0に、次の文字 はW0のC1に続きます。 This order is very consistent with itself and with the English language. この順序は、英語と非常に整合しています。 On the other hand, the Little-Endians have their view, which is different but also self-consistent. 一方、リトル・エンディアンは意見が異なりますが、整合性があります。 They believe that one should start with the narrow end of every word, and that low addresses are of lower order than high addresses. Therefore they put their words on paper as if they were written in Hebrew, like this: 彼らは、すべてのワードが最下位から始めるべきで、低いアドレスは高いアドレ スよりも下位であると信じています。そのため、次のようにヘブライ語で書かれ ているかのようにワードを紙に書きます。 ...|---word2---|---word1---|---word0---| When they add the bit order and the byte order they get: ビット順とバイト順を追加すると、次のようになります。 ...|---word2---|---word1---|---word0---| ....|C3,C2,C1,C0|C3,C2,C1,C0|C3,C2,C1,C0| .....|B31......B0|B31......B0|B31......B0| In this regime, when word W(n) is shifted right, its LSB moves into the MSB of word W(n-1). この体系で、ワードW(n)を右シフトすると、そのLSBは単語W(n-1)のMSBに移動し ます。 4 English text strings are stored in the same order, with the first character in C0 of W0, the next in C1 of W0, and so on. 英語のテキスト文字列は同じ順序で保存され、最初の文字はW0のC0、次の文字は W0のC1に続きます。 This order is very consistent with itself, with the Hebrew language, and (more importantly) with mathematics, because significance increases with increasing item numbers (address). この順序は整合しており、ヘブライ語と同じで、(さらに重要なことですが)ア イテム番号(アドレス)が増えると、数字の上位桁になります。 It has the disadvantage that English character streams appear to be written backwards; this is only an aesthetic problem but, admittedly, it looks funny, especially to speakers of English. 英語の文字列は逆向きに書かれているように見えるという欠点があります。これ は見た目の問題に過ぎませんが、確かに、特に英語を話す人にとっては変に見え ます。 In order to avoid receiving strange comments about this orders the Little-Endians pretend that they are Chinese, and write the bytes, not right-to-left but top-to-bottom, like: この順序に関する奇妙なコメントを受け取らないようにするために、リトルエン ディアンは、中国人であるかのように、右から左ではなく上から下にバイトを書 きます。 C0: "J" C1: "O" C2: "H" C3: "N" ..etc.. Note that there is absolutely no specific significance whatsoever to the notion of "left" and "right" in bit order in a computer memory. One could think about it as "up" and "down" for example, or mirror it by systematically interchanging all the "left"s and "right"s. However, this notion stems from the concept that computer words represent numbers, and from the old mathematical tradition that the wide-end of a number (aka the MSB) is called "left" and the narrow-end of a number is called "right". コンピューターのメモリ内のビット順で「左」と「右」の概念はありません。た とえば、「上」と「下」と考えることも、鏡に映して「左」と「右」を交換する こともできます。 ただし、この概念は、コンピューターのワードが数字を表す という菅家方人、数字の上位桁(別名MSB)が「左」と呼ばれ、数字の下位桁が 「右」と呼ばれる数学の古くからの伝統に由来します。 This mathematical convention is the point of reference for the notion of "left" and "right". この数学の伝統は「左」と「右」の概念の基になります。 It is easy to determine whether any given computer system was designed by Little-Endians or by Big-Endians. This is done by watching the way the registers are connected for the "COMBINED-SHIFT" operation and for multiple-precision arithmetic like integer products; also by watching how these quantities are stored in memory; and obviously also by the order in which bytes are stored within words. Don't let the B0-to-B31 direction fool you!! Most computers were designed by Big-Endians, who under the threat of criminal prosecution pretended to be Little-Endians, rather than seeking exile in Blefuscu. They did it by using the B0-to-B31 convention of the Little-Endians, while keeping the Big-Endians' conventions for bytes and words. 特定のコンピューターシステムがリトルエンディアンで設計されたかビッグエン ディアンで設計されたかを判断するのは簡単です。これは、複合シフト操作と整 数積のような複数精度の算術でレジスタのつながりを観察することで行えます; 数値がメモリにどのように保存されるかを観察しても可能です;明らかに、バイ トがワード内に格納される順序を観察しても可能です。B0からB31の方向に注意 してください!!ほとんどのコンピューターはビッグエンディアンで設計されまし た(訳注:who under ~ Blefuscu はガリバー旅行記に由来するジョークと思わ れるので翻訳は割愛しました)。ビッグエンディアンのバイトとワードの規則を 使用し、リトルエンディアンのB0からB31の規則を使用して、設計されました。 The PDP10 and the 360, for example, were designed by Big-Endians: their bit order, byte-order, word-order and page-order are the same. The same order also applies to long (multi-word) character strings and to multiple precision numbers. たとえば、PDP10と360はビッグエンディアンによって設計されました:ビット順、 バイト順、ワード順、ページ順は同じです。同じ順序は、ロング(マルチワード) 文字列と複精度の数値にも適用されます。 5 Next, let's consider the new M68000 microprocessor. Its way of storing a 32-bit number, xy, a 16-bit number, z, and the string "JOHN" in its 16-bit words is shown below (S = sign bit, M = MSB, L = LSB): 次に、新しいM68000マイクロプロセッサについて考えてみましょう。32ビット数xy、 16ビット数z、および文字列「JOHN」を16ビットワードに格納する方法を以下に 示します(S =符号ビット、M = MSB、L = LSB): SMxxxxxxx yyyyyyyyL SMzzzzzzL "J" "O" "H" "N" |--word0--|--word1--|--word2--|--word3--|--word4--|.... |-C0-|-C1-|-C0-|-C1-|-C0-|-C1-|-C0-|-C1-|-C0-|-C1-|..... |B15....B0|B15....B0|B15....B0|B15....B0|B15....B0|...... The M68000 always has on the left (i.e., LOWER byte- or word-address) the wide-end of numbers in any of the various sizes which it may use: 4 (BCD), 8, 16 or 32 bits. M68000の左側(つまり、下位のバイトアドレスまたはワードアドレス)には、使 用可能なさまざまな大きさ(4ビット(BCD)、8ビット、16ビット、32ビット) の数字の最上位桁が常にあります。 Hence, the M68000 is a consistent Big-Endian, except for its bit designation, which is used to camouflage its true identity. Remember: the Big-Endians were the outlaws. したがって、本性を隠すのに使用されるビット指定を除き、M68000は一貫して ビッグエンディアンです。重要:ビッグエンディアンは無法者です。 Let's look next at the PDP11 order, since this is the first computer to claim to be a Little-Endian. Let's again look at the way data is stored in memory: 次に、PDP11の順序を見てみましょう。これは、リトルエンディアンであると主 張する最初のコンピューターです。データがメモリに保存される方法をもう見て みましょう。 "N" "H" "O" "J" SMzzzzzzL SMyyyyyyL SMxxxxxxL ....|--word4--|--word3--|--word2--|--word1--|--word0--| .....|-C1-|-C0-|-C1-|-C0-|-C1-|-C0-|-C1-|-C0-|-C1-|-C0-| ......|B15....B0|B15....B0|B15....B0|B15....B0|B15....B0| The PDP11 does not have an instruction to move 32-bit numbers. Its multiplication products are 32-bit quantities created only in the registers, and may be stored in memory in any way. Therefore, the 32-bit quantity, xy, was not shown in the above diagram. PDP11には、32ビットの数値を移動する命令はありません。乗算積はレジスター でのみ作成される32ビット値で、任意の方法でメモリーに格納できます。 した がって、32ビット値xyは上の図には示されていません。 Hence, the above order is a Little-Endians' consistent order. The PDP11 always stores on the left (i.e., HIGHER bit- or byte-address) the wide-end of numbers of any of the sizes which it may use: 8 or 16 bits. したがって、上記の順序はリトルエンディアンの順序です。 PDP11は、常に左側 (つまり、上位ビットアドレスまたはバイトアドレス)に、使用可能な任意のサ イズ(8または16ビット)の数値の上位桁を格納します。 However, due to some infiltration from the other camp, the registers of this Little-Endian's marvel are treated in the Big-Endians' way: a double length operand (32-bit) is placed with its MSB in the lower address register and the LSB in the higher address register. Hence, when depicted on paper, the registers have to be put from left to right, with the wide end of numbers in the LOWER-address register. This affects the integer multiplication and division, the combined-shifts and more. Admittedly, Blefuscu scores on this one. ただし、他陣営からの浸食により、このリトルエンディアンのレジスタは不思議 なことにビッグエンディアンの方法で処理されます。倍長命令(32ビット)が最上 位桁が下位アドレスレジスタに読まれ、最下位桁が上位アドレスレジスタに読ま れます。したがって、紙に描かれる場合、レジスタは左から右に配置する必要が あり、数字の上位桁はLOWERアドレスレジスタにあります。これは、整数の乗算 と除算、結合シフトなどに影響します。Blefuscu(訳注:ビッグエンディアン陣 営)はこの点について加点を得ます。 Later, floating-point hardware was introduced for the PDP11/45. 後日に、PDP11/45に浮動小数点ハードウェアが導入されました。 Floating-point numbers are represented by either 32- or 64-bit quantities, which are 2 or 4 PDP11 words. The wide end is the one with the sign bit(s), the exponent and the MSB of the fraction. The narrow end is the one with the LSB of the fraction. On paper these formats are clearly shown with the wide end on the left and the narrow on the right, according to the centuries old mathematical conventions. On page 12-3 6 of the PDP11/45 processor handbook, [3], there is a cute graphical demonstration of this order, with the word "FRACTION" split over all the 2 or the 4 words which are used to store it. 浮動小数点数は、32ビットまたは64ビットで表され、PDP11の2ワードまたは 4ワードです。この最上位端は符号ビット、指数、仮数の最上位桁がです。最下 位端は、仮数の最下位桁です。数百年前の数学の慣習に従って、これらの形式は、 左端が大きな値、右端が小さな値の形式で明確に示されています。PDP11/45プロ セッサハンドブック[3]のページ12-3には、この順序のキュートな図示説明があ り、「仮数」という単語が、これを格納するために使用される2または4ワード すべてに分割されています。 However, due to some oversights in the security screening process, the Blefuscuians took over, again. They assigned, as they always do, the wide end to the LOWer addresses in memory, and the narrow to the HIGHer addresses. ただし、安全対策手順のいくつかの見落としのため、Blefuscuians(訳注:ビッ グエンディアン派)が再び勢力を盛り返します。 彼らは、いつものように、メ モリ内の下位アドレスに上位桁を割り当て、上位アドレスに下位桁を割り当てま した。 Let "xy" and "abcd" be 32- and 64-bit floating-point numbers, respectively. Let's look how these numbers are stored in memory: 「xy」と「abcd」をそれぞれ32ビットと64ビットの浮動小数点数にします。これ らの数値がどのようにメモリに保存されるか見てみましょう。 ddddddddL ccccccccc bbbbbbbbb SMaaaaaaa yyyyyyyyL SMxxxxxxx ....|--word5--|--word4--|--word3--|--word2--|--word1--|--word0--| .....|-C1-|-C0-|-C1-|-C0-|-C1-|-C0-|-C1-|-C0-|-C1-|-C0-|-C1-|-C0-| ......|B15....B0|B15....B0|B15....B0|B15....B0|B15....B0|B15....B0| "N" "H" "O" "J" SMzzzzzzL SMxxxxxxx yyyyyyyyL ...ng2-------|-------long1-------|-------long0-------| ....|--word4--|--word3--|--word2--|--word1--|--word0--| .....|-C1-|-C0-|-C1-|-C0-|-C1-|-C0-|-C1-|-C0-|-C1-|-C0-| ......|B15....B0|B15....B0|B15....B0|B15....B0|B15....B0| What a beautifully consistent Little-Endians' order this is !!! これはなんと美しく一貫したリトル・エンディアンの命令でしょうか!!! So, what about the infiltrators? Did they completely fail in carrying out their mission? Since the integer arithmetic was closely guarded they attacked the floating point and the double-floating which were already known to be easy prey. では、侵入者についてはどうでしょう?彼らは任務の遂行に完全に失敗しました か?整数演算は厳重に保護されていたため、簡単な餌食であると知られている浮 動小数点数と倍精度二重浮動小数点数を攻撃しました。 7 Let's look, again, at the way the above data is stored, except that now the 32-bit quantity xy is a floating point number: now this data is organized in memory in the following Blefuscuian way: もう一度、上記のデータの格納方法を見てみましょう。ただし、32ビット値xyは 浮動小数点数である点を除きます:このデータは、次のビッグエンディアンの方 法でメモリに置かれます。 "N" "H" "O" "J" SMzzzzzzL yyyyyyyyL SMxxxxxxx ...ng2-------|-------long1-------|-------long0-------| ....|--word4--|--word3--|--word2--|--word1--|--word0--| .....|-C1-|-C0-|-C1-|-C0-|-C1-|-C0-|-C1-|-C0-|-C1-|-C0-| ......|B15....B0|B15....B0|B15....B0|B15....B0|B15....B0| Blefuscu scores again. The VAX is found guilty, however with the explanation that it tries to be compatible with the PDP11. ビッグエンディアン派が再び得点します。VAXは有罪判決を受けますが、PDP11と の互換性を保つとの説明があります。 Having found themselves there, the VAXians found a way around this unaesthetic appearance: the VAX literature (e.g., p. 10 of [4]) describes this order by using the Chinese top-to-bottom notation, rather than an embarrassing left-to-right or right-to-left one. This page is a marvel. One has to admire the skillful way in which some quantities are shown in columns 8-bit wide, some in 16 and other in 32, all in order to avoid the egg-on-the-face problem..... そこでVAX派は、この美しくない言い訳を回避する方法を見つけました。VAXの文 献(例えば、[4]の10頁)は、恥ずかし左から右または右から左への表記ではな く、中国式の上から下への表記を使用してこの順序を説明しています。この頁は 素晴らしいです。恥を回避するために、いくつかの数を8ビット幅で別の数を16 ビット幅で、他を32ビット幅で表示する巧みな技を賞賛します。 By the way, some engineering-type people complain about the "Chinese" (vertical) notation because usually the top (aka "up") of the diagrams corresponds to "low"-memory (low addresses). However, anyone who was brought up by computer scientists, rather than by botanists, knows that trees grow downward, having their roots at the top of the page and their leaves down below. Computer scientists seldom remember which way "up" really is (see 2.3 of [5], pp. 305-309). ところで、通常、図の上部は「低い」メモリに対応するため、一部の工学系の 人々は「中国型」(垂直型)の表記に文句を言います。植物学者ではなくコン ピュータ科学者によって育てられた人は、木が下に成長し、頁の上部に根があり、 葉が下にあることを知っています。コンピュータ科学者は、「上」が実際はどの 方向であるかをほとんど覚えていません([5]の2.3、305-309頁を参照)。 Having scored so easily in the floating point department, the Blefuscuians moved to new territories: Packed-Decimal. The VAX is also capable of using 4-bit-chunk decimal arithmetic, which is similar to the well known BCD format. 浮動小数点数の部門で非常に簡単に得点したので、ビッグエンディアン派は新し い領域に移動しました:Packed-Decimal。VAXは、4ビット10進数の演算が使用 できます。これは、よく知られているBCD形式に似ています。 The Big-Endians struck again, and without any resistance got their way. The decimal number 12345678 is stored in the VAX memory in this order: ビッグエンディアン派は再び攻撃を仕掛け、抵抗なし侵攻しました。10進数の 12345678は、次の順序でVAXメモリに保存されます。 7 8 5 6 3 4 1 2 ...|-------long0-------| ....|--word1--|--word0--| .....|-C1-|-C0-|-C1-|-C0-| ......|B15....B0|B15....B0| This ugliness cannot be hidden even by the standard Chinese trick. この醜さは、標準的な中国表記でも隠せません。 8 SUMMARY (of the Memory-Order section) (メモリ順の章の)まとめ To the best of my knowledge only the Big-Endians of Blefuscu have built systems with a consistent order which works across chunk-boundaries, registers, instructions and memories. I failed to find a Little-Endians' system which is totally consistent. 私の知る限り、ビッグエンディアン派のみが、塊の境界、レジスタ、命令、およ びメモリで機能する一貫した順序のシステムを構築しました。完全に一貫したリ トルエンディアンのシステムを見つけることができませんでした。 TRANSMISSION ORDER 送信順序 In either of the consistent orders the first bit (B0) of the first byte (C0) of the first word (W0) is sent first, then the rest of the bits of this byte, then (in the same order) the rest of the bytes of this word, and so on. どちらの方式でも順序でも、最初のワード(W0)の最初のバイト(C0)の最初のビッ ト(B0)を最初に送信し、次にこのバイトの残りのビット、次に(同じ順序で)残 りのワードを送信します。 Such a sequence of 8 32-bit words, for example, may be viewed as either 4 long-words, 8 words, 32 bytes or 256 bits. たとえば、32ビットワードの8個の列は、4つのロングワードや、8個のワード、 32バイト、または256ビットと見なすことができます。 For example, some people treat the ARPA-internet-datagrams as a sequence of 16-bit words whereas others treat them as either 8-bit byte streams or sequences of 32-bit words. This has never been a source of confusion, because the Big-Endians' consistent order has been assumed. たとえば、ARPAインターネットデータ列を16ビットワード列として扱う人もいれ ば、8ビットバイト列または32ビットワード列として扱う人もいます。ビッグエ ンディアンで一致した順序が想定されているため、これは混乱の原因にはなりま せんでした。 There are many ways to devise inconsistent orders. The two most popular ones are the following and its mirror image. Under this order the first bit to be sent is the LEAST significant bit (B0) of the MOST significant byte (C0) of the first word, followed by the rest of the bits of this byte, then the same right-to-left bit order inside the left-to-right byte order. 整合性のない順序を考える方法はたくさんあります。最も人気のある2つは、以 下とその鏡像です。この順序で、送信される最初のビットは最初のワードの最上 位バイトの最下位ビット(B0)で、同じバイトの残りのビットが続き、同じく、左 から右へのバイト順で、バイト内は右から左のビットビット順です。 Figure 1 shows the transmission order for the 4 orders which were discussed above, the 2 consistent and the 2 inconsistent ones. 図1は、上で説明した4つの順序の送信を示しています、2つは整合性があり、 2つは整合性がありません。 Those who use such an inconsistent order (or any other), and only those, have to be concerned with the famous byte-order problem. If they can pretend that their communication medium is really a byte-oriented link then this inconsistency can be safely hidden under the rug. このような整合性のない順序を(または他の順序)を使用する人は、有名なバイ ト順の問題に注意する必要があります。通信媒体がバイト指向のリンクに見える 場合、この不整合は絨毯の下に安全に隠されます。 A few years ago 8-bit microprocessors appeared and changed drastically the way we do business. A few years later a wide variety of 8-bit communication hardware (e.g., Z80-SIO and 2652) followed, all of which operate in the Little-Endians' order. 数年前、8ビットのマイクロプロセッサが登場し、私たちのビジネスのやり方を 大きく変えました。数年後、さまざまな8ビット通信ハードウェア(Z80-SIOや 2652など)が続き、それらはすべてリトルエンディアンの順序で動作します。 9 Now a wave of 16-bit microprocessors has arrived. It is not inconceivable that 16-bit communication hardware will become a reality relatively soon. 16ビットのマイクロプロセッサが登場しだしました。16ビット通信ハードウェア が比較的すぐに現実になることは考えられません。 Since the 16-bit communication gear will be provided by the same folks who brought us the 8-bit communication gear, it is safe to expect these two modes to be compatible with each other. 16ビット通信ギアは、8ビット通信装置と同じ人々が提供するので、これらの2 つのモードに相互に互換性があると考えてよいです。 The only way to achieve this is by using the consistent Little-Endians order, since all the existing gear is already in Little-Endians order. これを達成する唯一の方法は、既存のすべての装置がすでにリトルエンディアン の順序になっているため、同じくリトルエンディアンの順序を使用することです。 We have already observed that the Little-Endians do not have consistent memory orders for intra-computer organization. リトルエンディアンは、コンピューター内の機構で一貫したメモリ順序を持たな いことを既に確認しています。 IF the 16-bit communication link could be made to operate in any order, consistent or not, which would give it the appearance of being a byte- oriented link, THEN the Big-Endians could push (ask? hope? pray?) for an order which transmits the bytes in left-to-right (i.e., wide-end first) and use that as a basis for transmitting all quantities (except BCD) in the more convenient Big-Endians format, with the most significant portions leading the least significant, maintaining compatibility between 16- and 32-bit communication, and more. IF 16ビット通信リンクを任意の順序で動作させることができ、整合性があるか どうかに関係なく、バイト指向のリンクのように見える場合は、THEN ビッグエ ンディアンを推薦(お願い?希望?祈り?)できます、つまりバイトを左から右 に(つまり、上位桁が最初に)送信し、上位桁の次に下位桁が来る、16ビットと 32ビット通信間の互換性の維持に便利なビッグエンディアン形式を全ての大きさ の送信で基本とする(BCDを除く)、のを推薦します。 However, this is a big "IF". ただし、これは「IF」です。 Wouldn't it be nice if we could encapsulate the byte-communication and forget all about the idiosyncrasies of the past, introduced by RS232 and TELEX, of sending the narrow-end first? バイト通信をカプセル化して、最下位を最初に送信するというRS232とTELEXに よって導入された過去の特異事象をすべて忘れることができたらいいと思いませ んか? I believe that it would be nice, but nice things do not necessarily occur, especially if there is so much silicon against them. 私は忘れるのがよいと信じていますが、素晴らしいことが起きるとは限らず、特 にシリコン系では特に起きるとは限りません。 Hence, our choice now is between (1) Big-Endians' computer-convenience and (2) future compatibility between communication gear of different chunk size. したがって、現在選択できるのは(1)ビッグエンディアンのコンピューターの利 便性と(2)異なる塊の大きさの通信機器間の将来の互換性のどちらかです。 I believe that this is the question, and we should address it as such. これは問題だと思うので、そのように対処する必要があります。 Short term convenience considerations are in favor of the former, and the long term ones are in favor of the latter. 短期的な利便性を考えれば前者に有利であり、長期的に考えると後者に有利です。 Since the war between the Little-Endians and the Big-Endians is imminent, let's count who is in whose camp. リトルエンディアンとビッグエンディアンの間の戦争は差し迫っているので、誰 が誰の陣営にいるかを数えましょう。 The founders of the Little-Endians party are RS232 and TELEX, who stated that the narrow-end is sent first. So do the HDLC and the SDLC protocols, the Z80-SIO, Signetics-2652, Intel-8251, Motorola-6850 and all the rest of the existing communication devices. In addition to these protocols and chips the PDP11s and the VAXes have already pledged their allegiance to this camp, and deserve to be on this roster. リトルエンディアン側の創設者はRS232とTELEXで、最下位桁が最初に送信される と述べています。HDLCとSDLCプロトコル、Z80-SIO、Signetics-2652、 Intel-8251、Motorola-6850およびその他の既存の通信デバイスも同様です。こ れらのプロトコルとチップに加えて、PDP11とVAXはすでにこの陣営への忠誠を誓 い、この名簿に載るに値します。 10 The HDLC protocol is a full fledged member of this camp because it sends all of its fields with the narrow end first, as is specifically defined in Table 1/X.25 (Frame formats) in section 2.2.1 of Recommendation X.25 (see [2]). A close examination of this table reveals that the bit order of transmission is always 1-to-8. Always, except the FCS (checksum) field, which is the only 16-bit quantity in the byte-oriented protocol. HDLCプロトコルはこの陣営の本格的なメンバーで、X.25標準([2]を参照)の2.2.1 章の表1/X.25(フレーム形式)で特に定義されているように、すべてのフィール ドで最初に最下位桁を送信します。この表をよく調べると、送信のビット順序は 常に1から8であることがわかります。FCS(チェックサム)フィールドを除きます。 FCSフィールドは、バイト指向プロトコルで唯一の16ビット量です。 The FCS is sent in the 16-to-1 order. How did the Blefuscuians manage to pull off such a fiasco?! The answer is beyond me. Anyway, anyone who designates bits as 1-to-8 (instead of 0-to-7) must be gullible to such tricks. FCSは16から1の順序で送信されます。リトルエンディアン派はどしてこのような 大失敗をしたのでしょうか?!私を答えを知りません。とにかく、ビットを(0 から7ではなく)1から8を指定する人は、このような手品にだまされやすいに 違いありません。 The Big-Endians have the PDP10's, 370's, ALTO's and Dorado's... ビッグエンディアンはPDP10、370、ALTO、Doradoにもあります... An interesting creature is the ARPANet-IMP. The documentation of its standard host interface (aka "LH/DH") states that "The high order bit of each word is transmitted first" (p. 4-4 of [1]), hence, it is a Big-Endian. This is very convenient, and causes no confusion between diagrams which are either 32- (e.g., on p. 3-25) and 16-bit wide (e.g., on p. 5-14). 興味深い生物は、ARPANet-IMPです。標準ホストインターフェイス(別名"LH/DH") の文書には、「各ワードの上位ビットが最初に送信される」([1]の4-4頁 )と あるためビッグエンディアンです。 これは非常に便利で32ビット幅(たとえば、 3-25頁)と16ビット幅(たとえば、5-14頁)の図の間で混乱を引き起こしません。 However, the IMP's Very Distant Host (VDH) interface is a Little-Endian. ただし、IMPのVery Distant Host(VDH)インターフェイスはリトルエンディアン です。 The same document ([1], again, p. F-18), states that the data "must consist of an even number of 8-bit bytes. Further, considering each pair of bytes as a 16-bit word, the less significant (right) byte is sent first". 同じ文書([1]のF-18頁)で、データは「偶数個の8ビットバイトで構成される必 要があります。さらに、バイトの各ペアを16ビットワードと見なすと、最下位 (右の)バイトが最初に送信されます」とあります。 In order to make this even more clear, p. F-23 states "All bytes (data bytes too) are transmitted least significant (rightmost) bit first". これをさらに明確にするために、F-23頁は「すべてのバイト(データバイトも) が最下位(右端)ビットから送信される」と述べています。 Hence, both camps may claim to have this schizophrenic double-agent in their camp. したがって、両陣営は、この統合失調症の二重人格が自陣営と主張するかもしれ ません。 Note that the Lilliputians' camp includes all the who's-who of the communication world, unlike the Blefuscuians' camp which is very much oriented toward the computing world. リトルエンディアン陣営には、コンピューティングの世界を重視するビッグエン ディアン陣営とは異なり、通信の世界の全員が含まれています。 Both camps have already adopted the slogan "We'd rather fight than switch!". どちらの陣営も「切り替えよりも戦いたい!」というスローガンをすでに採用し ています。 I believe they mean it. 私は彼ら本気だと信じています。 11 SUMMARY (of the Transmission-Order section) まとめ(転送順序の章の) There are two camps each with its own language. These languages are as compatible with each other as any Semitic and Latin languages are. それぞれ独自の言語の2つの陣営があります。これらの言語は、セム語やラテン 語と同様に相互に互換性があります。 All Big-Endians can talk to each other with relative ease. すべてのビッグエンディアンは、比較的簡単に互いに話すことができます。 So can all the Little-Endians, even though there are some differences among the dialects used by different tribes. 部族毎の使用する方言に多少の違いはありますが、すべてのリトルエンディアン も同様です。 There is no middle ground. Only one end can go first. 妥協点はありません。最初に送信できるのは片端だけです。 CONCLUSION 結論 Each camp tries to convert the other. Like all the religious wars of the past, logic is not the decisive tool. Power is. This holy war is not the first one, and probably will not be the last one either. 各陣営は、他の陣営の説得を試みます。過去のすべての宗教戦争のように、理屈 で決まるものではありません。力で決まります。この宗教戦争は最初の戦争では なく、おそらく最後の戦争でもないでしょう。 The "Be reasonable, do it my way" approach does not work. Neither does the Esperanto approach of "let's all switch to yet a new language". 「合理的で、自分のやり方でやる」という方針はうまくいきません。また、「新 言語に切り替えましょう」というエスペラント語の手段もありません。 Our communication world may split according to the language used. A certain book (which is NOT mentioned in the references list) has an interesting story about a similar phenomenon, the Tower of Babel. 私たちの通信の世界は、使用される言語に応じて分割される場合があります。 とある本(参考文献リストには記載されていません)には、同様の現象である バベルの塔に関する興味深い話があります。 Little-Endians are Little-Endians and Big-Endians are Big-Endians and never the twain shall meet. リトルエンディアンはリトルエンディアンであり、ビッグエンディアンはビッグ エンディアンであり、両者がまみえることは決してない。 We would like to see some Gulliver standing up between the two islands, forcing a unified communication regime on all of us. I do hope that my way will be chosen, but I believe that, after all, which way is chosen does not make too much difference. It is more important to agree upon an order than which order is agreed upon. ガリバーが2つの島の間に立ち、私たち全員に統一された通信を強制することを 望んでいます。私は自分の路線が選ばれることを望んでいますが、結局のところ、 どちらの路線が選ばれてもそれほど違いはないと思います。順序を決める事より も、順序を決める方法を合意することが重要です。 How about tossing a coin ??? コインを投げる方法は? 12 time time | | \ | | / \ | | / \ | | / \ | | / \ | | / \ | | / \ | | / \ | | / \ | | / \ | | / \ | | / \ | | / \ | | / \ | | / \ | | / \ | | / <-MSB---------------LSB- -MSB---------------LSB-> order (1) | | order (2) time time | | / | | \ / | | \ / | | \ / | | \ / | | \ / | | \ / | | \ / | | \ / | | \ / | | \ / | | \ / | | \ / | | \ / | | \ / | | \ / | | \ <-MSB---------------LSB- -MSB---------------LSB-> order (3) | | order (4) Figure 1: Possible orders, consistent: (1)+(2), inconsistent: (3)+(4). 図1: 可能な順書、整合性がある: (1)+(2)、整合性がない: (3)+(4)。 13 A P P E N D I X 付録 Some notes on Swift's Gulliver's Travels: スウィフトのガリバー旅行記に関するいくつかのメモ: Gulliver finds out that there is a law, proclaimed by the grandfather of the present ruler, requiring all citizens of Lilliput to break their eggs only at the little ends. Of course, all those citizens who broke their eggs at the big ends were angered by the proclamation. Civil war broke out between the Little-Endians and the Big-Endians, resulting in the Big-Endians taking refuge on a nearby island, the kingdom of Blefuscu. ガリバーは、現在の支配者の祖父によって宣言された法律があり、リリパットの すべての市民は卵を小さな端で割らなければならないと知ります。そして、卵の 大きな端を壊したすべての市民は法律により怒られました。リトルエンディアン とビッグエンディアンの間で内戦が勃発し、その結果、ビッグエンディアンは近 くの島ブレフスク王国に避難しました。 Using Gulliver's unquestioning point of view, Swift satirizes religious wars. For 11,000 Lilliputian rebels to die over a controversy as trivial as at which end eggs have to be broken seems not only cruel but also absurd, since Gulliver is sufficiently gullible to believe in the significance of the egg question. The controversy is important ethically and politically for the Lilliputians. The reader may think the issue is silly, but he should consider what Swift is making fun of the actual causes of religious- or holy-wars. 疑問を持たないガリバーの視点を使用して、スウィフトは宗教戦争を風刺します。 最後に卵のどちらの端を壊すかというささいな論争で11,000人のリリパティアの 反逆者が死ぬことは残酷で不合理に思われますが、ガリバーは卵問題が重要だと 信じるてしまいます。この論争は、リリパット派にとって倫理的および政治的に 重要です。読者はこの問題は馬鹿げていると思うかもしれませんが、スウィフト が宗教戦争や聖戦の実際の原因をからかっていることを知ってください。 In political terms, Lilliput represents England and Blefuscu France. The religious controversy over egg-breaking parallels the struggle between the Protestant Church of England and the Catholic Church of France, possibly referring to some differences about what the Sacraments really mean. More specifically, the quarrel about egg-breaking may allude to the different ways that the Anglican and Catholic Churches distribute communion, bread and wine for the Anglican, but bread alone for the Catholic. The French and English struggled over more mundane questions as well, but in this part of Gulliver's Travels, Swift points up the symbolic difference between the churches to ridicule any religious war. 政治的には、リリパットはイギリスを、ブレフスクはフランスを意味します。卵 の割り方をめぐる宗教的論争は、プロテスタントのイングランド教会とフランス のカトリック教会の間の闘争に似ており、おそらく聖体の真の意味についてのい くつかの違いの事です。具体的には、卵割に関する口論は、イングランド教会と カトリック教会が聖体拝領で、イングランド教会はパンとワインを配布し、カト リック教会はパンだけを配布する点で、異なる方法であることを暗示するかもし れません。フランス語と英語も世俗的な問題で争いましたが、ガリバー旅行のこ の部分でスウィフトは教会間の象徴的な違いを指摘して宗教戦争をあざ笑いまし た。 For ease of reference please note that Lilliput and Little-Endians both start with an "L", and that both Blefuscu and Big-Endians start with a "B". This is handy while reading this note. 参照しやすいように、リリパットとリトルエンディアンは両方とも「L」で 始まり、ブレフスクとビッグエンディアンは「B」で始まります。 これは、 この文書を読むときに便利です。 14 R E F E R E N C E S 参考文献 [1] Bolt Beranek & Newman. Report No. 1822: Interface Message Processor. Technical Report, BB&N, May, 1978. [2] CCITT. Orange Book. Volume VIII.2: Public Data Networks. International Telecommunication Union, Geneva, 1977. [3] DEC. PDP11 04/05/10/35/40/45 processor handbook. Digital Equipment Corp., 1975. [4] DEC. VAX11 - Architecture Handbook. Digital Equipment Corp., 1979. [5] Knuth, D. E. The Art of Computer Programming. Volume I: Fundamental Algorithms. Addison-Wesley, 1968. [6] Swift, Jonathan. Gulliver's Travel. Unknown publisher, 1726. 15 OTHER SLIGHTLY RELATED TOPICS (IF AT ALL) その他のわずかに関連するトピック(ある場合) not necessarily for inclusion in this note このメモに含める必要はありません Who's on first? Zero or One ?? 最初はどっち?ゼロかイチ?? People start counting from the number ONE. The very word FIRST is abbreviated into the symbol "1st" which indicates ONE, but this is a very modern notation. The older notions do not necessarily support this relationship. 人々は1から数え始めます。FIRSTという単語を短縮すると1を示す記号"1st"に なりますが、これは非常に現代的な表記です。古い概念は、必ずしもこの関係を サポートしているわけではありません。 In English and French - the word "first" is not derived from the word "one" but from an old word for "prince" (which means "foremost"). Similarly, the English word "second" is not derived from the number "two" but from an old word which means "to follow". Obviously there is an close relation between "third" and "three", "fourth" and "four" and so on. 英語とフランス語では、「最初」という言葉は「1」という言葉からではなく、 「王子」という「古い」という言葉から派生しています。 同様に、英語の単語 「2番目」は、数字「2」からではなく、「後に従う」を意味する古い単語から 派生しています。 明らかに「3番目」と「3」、「4番目」と「4」の間には 密接な関係があります。 Similarly, in Hebrew, for example, the word "first" is derived from the word "head", meaning "the foremost", but not specifically No. 1. The Hebrew word for "second" is specifically derived from the word "two". The same for three, four and all the other numbers. 同様に、たとえばヘブライ語では、「最初の」という言葉は「先頭」という言葉 から派生し、 「最前線」を意味しますが、1番という意味ではありません。 「2番目」のヘブライ語は「2」という言葉から明確に派生しています。3や4 やその他すべての番号についても同じです。 However, people have,for a very long time, counted from the number One, not from Zero. As a matter of fact, the inclusion of Zero as a full-fledged member of the set of all numbers is a relatively modern concept. しかし、非常に長い間、人々はゼロからではなく、1から数えてきました。 実 際、ゼロを数字に含めるのは、比較的現代の概念です。 Zero is one of the most important numbers mathematically. It has many important properties, such as being a multiple of any integer. ゼロは数学的に最も重要な数字の1つです。任意の整数の倍数であるなど、多く の重要な特徴があります。 A nice mathematical theorem states that for any basis, b, the first b^N (b to the Nth power) positive integers are represented by exactly N digits (leading zeros included). This is true if and only if the count starts with Zero (hence, 0 through b^N-1), not with One (for 1 through b^N). 優れた数学的定理は、任意の基底bについて、最初のb^N(bのN乗)個の正の整数 が正確にN桁(先行ゼロを含む)で表現できることを示します。 これは、数の数 え方がゼロで始まる(つまり、0?b^N-1の間の整数)の場合に当てはまり、 1で始まる場合(1?b^Nの間の整数)の場合には当てはまりません。 This theorem is the basis of computer memory addressing. Typically, 2^N cells are addressed by an N-bit addressing scheme. Starting the count from One, rather than Zero, would cause either the loss of one memory cell, or an additional address line. Since either price is too expensive, computer engineers agree to use the mathematical notation of starting with Zero. Good for them! この定理は、コンピューターのメモリアドレス指定の基礎です。通常、2^N個の セルはNビットアドレッシング体系によってアドレス指定されます。ゼロではな く1から数え始めると、1つのメモリセルが失われるか、追加のアドレス線が発 生します。どちらの費用も高すぎるため、コンピューターエンジニアは、ゼロか ら開始する数学表記を使用することに同意します。良い仕事! The designers of the 1401 were probably ashamed to have address-0 and hid it from the users, pretending that the memory started at address-1. 1401の設計者は、おそらくアドレス0があることを恥ずかしく思い、ユーザーか らこれを隠し、メモリがアドレス1から始まったように見せかけました。 16 This is probably the reason that all memories start at address-0, even those of systems which count bits from B1 up. これはおそらく、このシステムのすべてのメモリがアドレス0から始まり、B1か らのビットを数える理由です。 Communication engineers, like most "normal" people, start counting from the number One. They never suffer by having to lose a memory cell, for example. Therefore, they are happily counting 1-to-8, and not 0-to-7 as computer people learn to do. 通信エンジニアは、ほとんどの「普通」の人々と同様に、1から数え始めます。 メモリセルを失う問題はありません。したがって、通信エンジニアは幸福にも 1?8を数えており、コンピューターの人々が学ぶ0?7ではありません。 ORDER OF NUMBERS. 番号の順序 In English, we write numbers in Big-Endians' left-to-right order. I believe that this is because we SAY numbers in the Big-Endians' order, and because we WRITE English in Left-to-right order. 英語で数字は、左から右の順のビッグエンディアンのに書きます。これはビッグ エンディアンの順序で数字を言うからであり、左から右の順序で英語を書くから だと思います。 Mathematically there is a lot to be said for the Little-Endians' order. 数学的には、リトルエンディアンの順序について多くのことが言われています。 Serial comparators and dividers prefer the former. Serial adders and multipliers prefer the latter order. 直列の比較器と分周器は前者を好みます。直列加算器と乗算器は後者の順序を好 みます。 When was the common Big-Endians order adopted by most modern languages? 一般的なビッグエンディアン順序は、ほとんどの現代言語でいつ採用されたか? In the Bible, numbers are described in words (like "seven") not by digits (like "7") which were "invented" nearly a thousand years after the Bible was written. In the old Hebrew Bible many numbers are expressed in the Little-Endians order (like "Seven and Twenty and Hundred") but many are in the Big-Endians order as well. 聖書で、数字は「7」などの数字ではなく、「七」などの単語で記述されていま す。古いヘブライ語の聖書では、多くの数字がリトルエンディアンの順序(「7 と20と100」など)で表記されていますが、多くがビッグエンディアンの順 序で表記されています。 Whenever the Bible is translated into English the contemporary English order is used. For example, the above number appears in that order in the Hebrew source of The Book of Esther (1:1). In the King James Version it is (in English) "Hundred and Seven and Twenty". In the modern Revised American Standard Version of the Bible this number is simply "One Hundred and Twenty-Seven". 聖書が英語に翻訳される時に、現代英語の順序が使用されます。たとえば、上記 の番号は、エステル記のヘブライ語の原典で上記の順序で表記されます。(英語 の)キングジェームズ版では「百と七と二十」です。現代の改訂アメリカ標準版 の聖書では、この数字は単に「百と二十七」です。 INTEGERS vs. FRACTIONS 整数と端数 Computer designers treat fix-point multiplication in one of two ways, as an integer-multiplication or as a fractional-multiplication. コンピューター設計者は、固定小数点乗算を整数乗算または端数乗算のいずれか で扱います。 The reason is that when two 16-bit numbers, for example, are multiplied, the result is a 31-bit number in a 32-bit field. Integers are right justified; fractions are left justified. The entire difference is only a single 1-bit shift. As small as it is, this is an important difference. その理由は、たとえば、2つの16ビット数を乗算すると、結果が32ビットフィー ルドの31ビット数になるためです。整数は右揃えです。端数は左揃えになります。 全体の違いは、1ビットのシフトのみです。これは小さいですが、大きな違いで す。 Hence, computers are wired differently for these kinds of multiplications. The addition/subtraction operation is the same for either integer/fraction operation. これらの種類の乗算で、コンピューターの配線は異なります。加算/減算演算は、 整数/小数演算のどちらでも同じです。 17 If the LSB is B0 then the value of a number is SIGMA<B(i)*[(2)^i]>, for i=0,15, in the above example. This is, obviously, an integer. LSBがB0の場合、上記の例で数値の値はi=0~15に対しΣB(i)*[(2)^i]です。 これは明らかに整数です。 If the MSB is B0 then the value of a number is SIGMA<B(i)*[(1/2)^i]>, for i=0,15. This is, obviously, a fraction. MSBがB0の場合、数値の値はi=0~15に対しΣB(i)*[(1/2)^i]です。これは明らか に端数です。 Hence, after multiplication the Integerites would typically keep B0-B15, the LSH (Least Significant Half), and discard the MSH, after verifying that there is no overflow into it. The Fractionites would also keep B0-B15, which is the MSH, and discard the LSH. したがって、乗算後、整数派はB0-B15のLSH(最下位の半分)を保持し、MSHに オーバーフローがないことを確認した後、MSHを破棄します。端数派もB0-B15 (MSH)を保持し、LSHを破棄します。 One could expect Integerites to be Little-Endians, and Fractionites to be Big-Endians. I do not believe that the world is that consistent. 整数派はリトルエンディアンであり、端数派はビッグエンディアンであると期待 できます。世界がそんなに一貫しているとは思いません。 SWIFT's POINT スウィフトの大事な事 It may be interesting to notice that the point which Jonathan Swift tried to convey in Gulliver's Travels in exactly the opposite of the point of this note. ジョナサン・スウィフトがガリバー旅行記で伝えようとした事は、この文書の大 事な事と正反対であることに気付くと面白いかもしれません。 Swift's point is that the difference between breaking the egg at the little-end and breaking it at the big-end is trivial. Therefore, he suggests, that everyone does it in his own preferred way. スウィフトの観点で、小さな端で卵を割ることと、大きな端で卵を割ることの違 いは些細なことです。したがって、彼は、誰もが自分の好みの方法で卵を割るこ とを示唆しています。 We agree that the difference between sending eggs with the little- or the big-end first is trivial, but we insist that everyone must do it in the same way, to avoid anarchy. Since the difference is trivial we may choose either way, but a decision must be made. 最初に卵を小さい端から送る事と大きい端から送る事の違いは些細なことである ことに同意しますが、我々は混乱を避けるために誰もが同じ方法で送らなければ ならないと主張します。違いは取るに足らないものなので、どちらの方法を選択 してもかまいませんが、決定を下す必要があります。