=================================================================== RCS file: /home/cvs/OpenXM/doc/Attic/genkou19991125.tex,v retrieving revision 1.4 retrieving revision 1.5 diff -u -p -r1.4 -r1.5 --- OpenXM/doc/Attic/genkou19991125.tex 1999/12/18 12:57:48 1.4 +++ OpenXM/doc/Attic/genkou19991125.tex 1999/12/18 13:59:50 1.5 @@ -111,11 +111,29 @@ CMO 層で定義されているデータは多倍長整数以外にも これは OX 層でのデータの判別の仕方とおなじである。 なお、 tag は各データ毎に 32 bit の整数で表されており、 多倍長整数は 20 となっている。 +ここで 32 bit の整数の表現方法について説明する必要がある。 +%昨今のコンピュータ事情から、 +%32 bit 整数も 8 bit 単位で扱うほうが都合がよい。 +OpenXM では 8 bit 単位で $( \mbox{\tt 00 00 00 14})_{2^8}$ と表す方法と +$( \mbox{\tt 14 00 00 00})_{2^8}$ と表す方法がある。 +この表現方法の違いはクライアントとサーバの最初の接続時に +双方の合意で決定することになっている。なお、合意がない場合には +前者の表現方法(以後、これを network byte order と呼ぶ)を +使うことになっている。 +また、負の数を表現する必要があるときには、 表現したい多倍長整数の絶対値を 2 進数で表した場合の桁数を $n$ と したとき、次にくるデータは $[(n+31)/32]$ を 32 bit の整数となる。 これは多倍長整数の絶対値を $2^32$ 進数で表した場合の桁数ととってもよい。 -ただし、表現したい数が負の場合はこの 32 bit の値は 2 の補数表現で負になる。 +ただし、表現したい数が負の場合はこの 32 bit の整数値は 2 の補数表現で負になる。 + +%表現したい多倍長整数が負であってもこれ以降の説明は正の場合と +%変わらないので、以後多倍長整数は正とみなす。 + +表現したい多倍長整数の絶対値が $2^32$ 進数で $(b_0 b_1 ...)_{2^32}$ +と表せるとき、次にくるデータは $b_0$, $b_1$, $\cdots$ を +32 bit の整数で表現した値となる。 + \section{MathCap について}