import "encoding/binary"

符号無し整数値とバイトシーケンス間の変換を実装しています。

パッケージファイル

binary.go

変数

BigEndianは、ByteOrderのビッグ-エンディアンの実装です。

var BigEndian bigEndian

LittleEndianは、ByteOrderのリトル-エンディアンの実装です。

var LittleEndian littleEndian

Read関数

func Read(r io.Reader, order ByteOrder, data interface{}) os.Error

Readは、構造化されたバイナリデータをrから読み込みます。データは固定サイズの値へのポインタ、または固定サイズの値のスライスでなければいけません。この固定サイズの値とは、固定サイズである数値型(int8, uint8, int16, float32, complex64, …)、配列、または固定サイズの値のみで構成されている構造体のいずれかである必要があります。指定されたバイトオーダを使用してrから読み込んだバイトデータをデコードしdataの連続したフィールドへ書き込みを行います。

TotalSize関数

func TotalSize(v reflect.Value) int

Write関数

func Write(w io.Writer, order ByteOrder, data interface{}) os.Error

Writeは、wへdataのバイナリ表現を書き込みます。データは固定サイズの値、または固定サイズの値へのポインタでなければいけません。この固定サイズの値とは、固定サイズである数値型(int8, uint8, int16, float32, complex64, …)、配列、または固定サイズ値のみで構成されている構造体のいずれかである必要があります。指定されたバイトオーダを使用してdataの連続したフィールドから読み込み、wへエンコードしたデータを書き込みます。

ByteOrder型

ByteOrderは16、32、64ビットの符号無し整数値へのバイトシーケンスの変換方法を指定します。

type ByteOrder interface {
    Uint16(b []byte) uint16
    Uint32(b []byte) uint32
    Uint64(b []byte) uint64
    PutUint16([]byte, uint16)
    PutUint32([]byte, uint32)
    PutUint64([]byte, uint64)
    String() string
}