本書での記法

本章では、本書におけるデータ型や値の記法を導入する。 これらは本書での解説のための記法であり、 FBX データ内部にそのような記法が出現することを意味しない。

型の表現

本書では原則的に、データ型の表現としてプログラミング言語 Rust の型の記法を用いる。 具体的には、以下のようなものを用いる。

表記内容補足・詳細
bool真偽値値は truefalse 。内部表現が 01 とは限らない。
u8符号なし8ビット整数
u16符号なし16ビット整数
u32符号なし32ビット整数
u64符号なし64ビット整数
i16符号付き16ビット整数2の補数表現
i32符号付き32ビット整数2の補数表現
i64符号付き64ビット整数2の補数表現
f3232ビット浮動小数点数IEEE 754
f6464ビット浮動小数点数IEEE 754
[T; n]要素数 n の、型 T の配列
String長さ無指定の文字列データUTF-8
Vec<T>要素数無指定の、型 T の配列
Vec<u8>長さ無指定のバイナリデータ符号なし8ビット整数の配列と見做せる

値の表現

データ中に現れる数値などを記述するとき、 420xff3.14 のように表現する。 もし桁が大きな数値であれば、読みやすさのためアンダースコア _ を挿入することがある。 たとえば 0xcobebeef0xcobe_beef10000001_000_000 などのように表現することもある。

バイナリデータを記述するときは、 [c0 be be ef] のように [] で囲って1バイトずつ16進数を空白区切りで並べて記述する。 1バイトは16進数2桁で表現する。

データは数値やその他の型として読んだ後の値を表現するかバイト列として1バイトずつ記すため、エンディアンを気にする必要はない。

文字列は foobar のように表現する。 これらが数値やバイナリデータと混同するおそれのある文字列値であるときは、文字列である旨明示する。 明示がないときは、数値やその他の型の値として優先して解釈するものとする。 特殊な記号や非印字文字などは \x00foo\x00bar のように \x に続けて16進数2桁で表現する。