次の表に、Open PL/I のデータ型の一覧と、各データ型の機械表現の整列およびサイズを示します。
特に指定されていない限り、整列は Intel、AIX/Power、および Sun SPARC で同一です。
データ型 | サイズ | 整列:整列されたデータ | 整列:整列されていないデータ |
---|---|---|---|
Fixed Binary Signed (p <= 7)1 | 1 バイト | 1 バイト | バイト |
Fixed Binary Signed (8 <= p <= 15) | 2 バイト | 2 バイト | バイト |
Fixed Binary Signed (16 <= p <= 31) | 4 バイト | 4 バイト | バイト |
Fixed Binary Signed (32 <= p <= 63) | 8 バイト |
4 バイト (32 ビット システム) 8 バイト (64 ビット システム) |
バイト |
Fixed Binary Unsigned (p <= 8) 2 | 1 バイト | 1 バイト | バイト |
Fixed Binary Unsigned (9 <= p <= 16) | 2 バイト | 2 バイト | バイト |
Fixed Binary Unsigned (17 <= p <= 32) | 4 バイト | 4 バイト | バイト |
Fixed Binary Unsigned (33 <= p <= 64) | 8 バイト |
4 バイト (32 ビット システム) 8 バイト (64 ビット システム) |
バイト |
Fixed Decimal (p,q) | [(p+2)/2] バイト | バイト | バイト |
Float Binary (p <= 23) | 4 バイト | 4 バイト | バイト |
Float Binary (p > 23) | 8 バイト | 4 バイト (Intel 32 ビットの場合)、 | バイト |
Float Decimal (p) | 12 バイト | 4 バイト | バイト |
Character (n) | n バイト | バイト | バイト |
Character (n) Varying | n+2 バイト | 2 バイト | バイト |
Character (n) Varyingz | n+1 バイト | バイト | バイト |
Graphic(n) | n*2 バイト | バイト | バイト |
Graphic(n) Varying | n*2+2 バイト | 2 バイト | バイト |
Graphic(n) Varyingz | n*2+2 バイト | バイト | バイト |
Widechar (n) | n*2 バイト | バイト | バイト |
Widechar (n) Varying | n*2+2 バイト | ハーフ ワード | バイト |
Widechar(n) Varyingz | n*2+1 バイト | バイト | バイト |
Bit (n) | n ビット | ビット | ビット |
Bit (n) Aligned | [(n+7)/8] バイト | バイト | – |
Pointer (32 ビット) | 4 バイト | 4 バイト | バイト |
Pointer (64 ビット) | 8 バイト | 8 バイト | バイト |
Picture | n バイト | バイト | バイト |
Label | 8 バイト | 4 バイト | バイト |
Entry Variable | 8 バイト | 4 バイト | バイト |
File Variable | 4 バイト | 4 バイト | バイト |
Structure3 | メンバーの合計 + 整列のギャップ | メンバーの最大数 | バイト |
Area (n) | (((n+7)/8)*8)+8 バイト | 8 バイト | – |
Offset | 4 バイト | 4 バイト | バイト |
以降のセクションでは、サイズ、整列、バイト順などの内部表現、範囲についての詳細を、必要に応じて説明します。
IBM RS/6000 および Sun SPARC プラットフォームのバイト順はビッグ エンディアンですが、Intel ベースのプラットフォームでは、リトル エンディアンのバイト順が採用されています。