接口

interface BigEndianOrder<T>

public interface BigEndianOrder<T> { func writeBigEndian(buffer: Array<Byte>): Int64 static func readBigEndian(buffer: Array<Byte>): T }

功能:大端序字节序列转换接口。

static func readBigEndian(Array<Byte>)

static func readBigEndian(buffer: Array<Byte>): T

功能:从字节数组中以大端序的方式读取一个 T 值。

参数:

  • buffer: Array<Byte> - 缓冲区,用于存放待读取的数据。

返回值:

  • T - T 值。

异常:

func writeBigEndian(Array<Byte>)

func writeBigEndian(buffer: Array<Byte>): Int64

功能:将 T 值以大端序的方式写入字节数组中。

参数:

  • buffer: Array<Byte> - 缓冲区,用于存放待写入的数据。

返回值:

  • Int64 - 写入的数据的字节数。

异常:

extend Bool <: BigEndianOrder<Bool>

extend Bool <: BigEndianOrder<Bool>

功能:为 Bool 扩展 BigEndianOrder 接口,以实现将 Bool 值和大端序字节序列的转换。

static func readBigEndian(Array<Byte>)

public static func readBigEndian(buffer: Array<Byte>): Bool

功能:从字节数组中以大端序的方式读取一个 Bool 值。

参数:

  • buffer: Array<Byte> - 缓冲区,用于存放待读取的数据。

返回值:

异常:

示例:

import std.binary.* import std.unittest.* import std.unittest.testmacro.* main() { let buffer: Array<Byte> = [0x1] let n = Bool.readBigEndian(buffer) @Assert(n, true) }

func writeBigEndian(Array<Byte>)

public func writeBigEndian(buffer: Array<Byte>): Int64

功能:将 Bool 值以大端序的方式写入字节数组中。

参数:

  • buffer: Array<Byte> - 缓冲区,用于存放待写入的数据。

返回值:

  • Int64 - 写入的数据的字节数。

异常:

示例:

import std.binary.* import std.unittest.* import std.unittest.testmacro.* main() { let buffer = Array<Byte>(8, item: 0) let n = true.writeBigEndian(buffer) @Assert(n, 1) @Assert(buffer[..n], [0x01]) }

extend Float16 <: BigEndianOrder<Float16>

extend Float16 <: BigEndianOrder<Float16>

功能:为 Float16 扩展 BigEndianOrder 接口,以实现将 Float16 值和大端序字节序列的转换。

static func readBigEndian(Array<Byte>)

public static func readBigEndian(buffer: Array<Byte>): Float16

功能:从字节数组中以大端序的方式读取一个 Float16 值。

参数:

  • buffer: Array<Byte> - 缓冲区,用于存放待读取的数据。

返回值:

异常:

示例:

import std.binary.* import std.unittest.* import std.unittest.testmacro.* main() { let buffer: Array<Byte> = [0x4A, 0x40] let n = Float16.readBigEndian(buffer) @Assert(n, 12.5) }

func writeBigEndian(Array<Byte>)

public func writeBigEndian(buffer: Array<Byte>): Int64

功能:将 Float16 值以大端序的方式写入字节数组中。

参数:

  • buffer: Array<Byte> - 缓冲区,用于存放待写入的数据。

返回值:

  • Int64 - 写入的数据的字节数。

异常:

示例:

import std.binary.* import std.unittest.* import std.unittest.testmacro.* main() { let buffer = Array<Byte>(8, item: 0) let n = 12.5f16.writeBigEndian(buffer) @Assert(n, 2) @Assert(buffer[..n], [0x4A, 0x40]) }

extend Float32 <: BigEndianOrder<Float32>

extend Float32 <: BigEndianOrder<Float32>

功能:为 Float32 扩展 BigEndianOrder 接口,以实现将 Float32 值和大端序字节序列的转换。

static func readBigEndian(Array<Byte>)

public static func readBigEndian(buffer: Array<Byte>): Float32

功能:从字节数组中以大端序的方式读取一个 Float32 值。

参数:

  • buffer: Array<Byte> - 缓冲区,用于存放待读取的数据。

返回值:

异常:

示例:

import std.binary.* import std.unittest.* import std.unittest.testmacro.* main() { let buffer: Array<Byte> = [0x41, 0x48, 0x00, 0x00] let n = Float32.readBigEndian(buffer) @Assert(n, 12.5) }

func writeBigEndian(Array<Byte>)

public func writeBigEndian(buffer: Array<Byte>): Int64

功能:将 Float32 值以大端序的方式写入字节数组中。

参数:

  • buffer: Array<Byte> - 缓冲区,用于存放待写入的数据。

返回值:

  • Int64 - 写入的数据的字节数。

异常:

示例:

import std.binary.* import std.unittest.* import std.unittest.testmacro.* main() { let buffer = Array<Byte>(8, item: 0) let n = 12.5f32.writeBigEndian(buffer) @Assert(n, 4) @Assert(buffer[..n], [0x41, 0x48, 0x00, 0x00]) }

extend Float64 <: BigEndianOrder<Float64>

extend Float64 <: BigEndianOrder<Float64>

功能:为 Float64 扩展 BigEndianOrder 接口,以实现将 Float64 值和大端序字节序列的转换。

static func readBigEndian(Array<Byte>)

public static func readBigEndian(buffer: Array<Byte>): Float64

功能:从字节数组中以大端序的方式读取一个 Float64 值。

参数:

  • buffer: Array<Byte> - 缓冲区,用于存放待读取的数据。

返回值:

异常:

示例:

import std.binary.* import std.unittest.* import std.unittest.testmacro.* main() { let buffer: Array<Byte> = [0x40, 0x29, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00] let n = Float64.readBigEndian(buffer) @Assert(n, 12.5) }

func writeBigEndian(Array<Byte>)

public func writeBigEndian(buffer: Array<Byte>): Int64

功能:将 Float64 值以大端序的方式写入字节数组中。

参数:

  • buffer: Array<Byte> - 缓冲区,用于存放待写入的数据。

返回值:

  • Int64 - 写入的数据的字节数。

异常:

示例:

import std.binary.* import std.unittest.* import std.unittest.testmacro.* main() { let buffer = Array<Byte>(8, item: 0) let n = 12.5f64.writeBigEndian(buffer) @Assert(n, 8) @Assert(buffer[..n], [0x40, 0x29, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]) }

extend Int16 <: BigEndianOrder<Int16>

extend Int16 <: BigEndianOrder<Int16>

功能:为 Int16 扩展 BigEndianOrder 接口,以实现将 Int16 值和大端序字节序列的转换。

static func readBigEndian(Array<Byte>)

public static func readBigEndian(buffer: Array<Byte>): Int16

功能:从字节数组中以大端序的方式读取一个 Int16 值。

参数:

  • buffer: Array<Byte> - 缓冲区,用于存放待读取的数据。

返回值:

异常:

示例:

import std.binary.* import std.unittest.* import std.unittest.testmacro.* main() { let buffer: Array<Byte> = [0x12, 0x34] let n = Int16.readBigEndian(buffer) @Assert(n, 0x1234) }

func writeBigEndian(Array<Byte>)

public func writeBigEndian(buffer: Array<Byte>): Int64

功能:将 Int16 值以大端序的方式写入字节数组中。

参数:

  • buffer: Array<Byte> - 缓冲区,用于存放待写入的数据。

返回值:

  • Int64 - 写入的数据的字节数。

异常:

示例:

import std.binary.* import std.unittest.* import std.unittest.testmacro.* main() { let buffer = Array<Byte>(8, item: 0) let n = 0x1234i16.writeBigEndian(buffer) @Assert(n, 2) @Assert(buffer[..n], [0x12, 0x34]) }

extend Int32 <: BigEndianOrder<Int32>

extend Int32 <: BigEndianOrder<Int32>

功能:为 Int32 扩展 BigEndianOrder 接口,以实现将 Int32 值和大端序字节序列的转换。

static func readBigEndian(Array<Byte>)

public static func readBigEndian(buffer: Array<Byte>): Int32

功能:从字节数组中以大端序的方式读取一个 Int32 值。

参数:

  • buffer: Array<Byte> - 缓冲区,用于存放待读取的数据。

返回值:

异常:

示例:

import std.binary.* import std.unittest.* import std.unittest.testmacro.* main() { let buffer: Array<Byte> = [0x12, 0x34, 0x56, 0x78] let n = Int32.readBigEndian(buffer) @Assert(n, 0x12345678) }

func writeBigEndian(Array<Byte>)

public func writeBigEndian(buffer: Array<Byte>): Int64

功能:将 Int32 值以大端序的方式写入字节数组中。

参数:

  • buffer: Array<Byte> - 缓冲区,用于存放待写入的数据。

返回值:

  • Int64 - 写入的数据的字节数。

异常:

示例:

import std.binary.* import std.unittest.* import std.unittest.testmacro.* main() { let buffer = Array<Byte>(8, item: 0) let n = 0x12345678i32.writeBigEndian(buffer) @Assert(n, 4) @Assert(buffer[..n], [0x12, 0x34, 0x56, 0x78]) }

extend Int64 <: BigEndianOrder<Int64>

extend Int64 <: BigEndianOrder<Int64>

功能:为 Int64 扩展 BigEndianOrder 接口,以实现将 Int64 值和大端序字节序列的转换。

static func readBigEndian(Array<Byte>)

public static func readBigEndian(buffer: Array<Byte>): Int64

功能:从字节数组中以大端序的方式读取一个 Int64 值。

参数:

  • buffer: Array<Byte> - 缓冲区,用于存放待读取的数据。

返回值:

异常:

示例:

import std.binary.* import std.unittest.* import std.unittest.testmacro.* main() { let buffer: Array<Byte> = [0x12, 0x34, 0x56, 0x78, 0x90, 0x12, 0x34, 0x56] let n = Int64.readBigEndian(buffer) @Assert(n, 0x1234567890123456) }

func writeBigEndian(Array<Byte>)

public func writeBigEndian(buffer: Array<Byte>): Int64

功能:将 Int64 值以大端序的方式写入字节数组中。

参数:

  • buffer: Array<Byte> - 缓冲区,用于存放待写入的数据。

返回值:

  • Int64 - 写入的数据的字节数。

异常:

示例:

import std.binary.* import std.unittest.* import std.unittest.testmacro.* main() { let buffer = Array<Byte>(8, item: 0) let n = 0x1234567890123456i64.writeBigEndian(buffer) @Assert(n, 8) @Assert(buffer[..n], [0x12, 0x34, 0x56, 0x78, 0x90, 0x12, 0x34, 0x56]) }

extend Int8 <: BigEndianOrder<Int8>

extend Int8 <: BigEndianOrder<Int8>

功能:为 Int8 扩展 BigEndianOrder 接口,以实现将 Int8 值和大端序字节序列的转换。

static func readBigEndian(Array<Byte>)

public static func readBigEndian(buffer: Array<Byte>): Int8

功能:从字节数组中以大端序的方式读取一个 Int8 值。

参数:

  • buffer: Array<Byte> - 缓冲区,用于存放待读取的数据。

返回值:

异常:

示例:

import std.binary.* import std.unittest.* import std.unittest.testmacro.* main() { let buffer: Array<Byte> = [0x12] let n = Int8.readBigEndian(buffer) @Assert(n, 0x12) }

func writeBigEndian(Array<Byte>)

public func writeBigEndian(buffer: Array<Byte>): Int64

功能:将 Int8 值以大端序的方式写入字节数组中。

参数:

  • buffer: Array<Byte> - 缓冲区,用于存放待写入的数据。

返回值:

  • Int64 - 写入的数据的字节数。

异常:

示例:

import std.binary.* import std.unittest.* import std.unittest.testmacro.* main() { let buffer = Array<Byte>(8, item: 0) let n = 0x12i8.writeBigEndian(buffer) @Assert(n, 1) @Assert(buffer[..n], [0x12]) }

extend UInt16 <: BigEndianOrder<UInt16>

extend UInt16 <: BigEndianOrder<UInt16>

功能:为 UInt16 扩展 BigEndianOrder 接口,以实现将 UInt16 值和大端序字节序列的转换。

static func readBigEndian(Array<Byte>)

public static func readBigEndian(buffer: Array<Byte>): UInt16

功能:从字节数组中以大端序的方式读取一个 UInt16 值。

参数:

  • buffer: Array<Byte> - 缓冲区,用于存放待读取的数据。

返回值:

异常:

示例:

import std.binary.* import std.unittest.* import std.unittest.testmacro.* main() { let buffer: Array<Byte> = [0x12, 0x34] let n = UInt16.readBigEndian(buffer) @Assert(n, 0x1234) }

func writeBigEndian(Array<Byte>)

public func writeBigEndian(buffer: Array<Byte>): Int64

功能:将 UInt16 值以大端序的方式写入字节数组中。

参数:

  • buffer: Array<Byte> - 缓冲区,用于存放待写入的数据。

返回值:

  • Int64 - 写入的数据的字节数。

异常:

示例:

import std.binary.* import std.unittest.* import std.unittest.testmacro.* main() { let buffer = Array<Byte>(8, item: 0) let n = 0x1234u16.writeBigEndian(buffer) @Assert(n, 2) @Assert(buffer[..n], [0x12, 0x34]) }

extend UInt32 <: BigEndianOrder<UInt32>

extend UInt32 <: BigEndianOrder<UInt32>

功能:为 UInt32 扩展 BigEndianOrder 接口,以实现将 UInt32 值和大端序字节序列的转换。

static func readBigEndian(Array<Byte>)

public static func readBigEndian(buffer: Array<Byte>): UInt32

功能:从字节数组中以大端序的方式读取一个 UInt32 值。

参数:

  • buffer: Array<Byte> - 缓冲区,用于存放待读取的数据。

返回值:

异常:

示例:

import std.binary.* import std.unittest.* import std.unittest.testmacro.* main() { let buffer: Array<Byte> = [0x12, 0x34, 0x56, 0x78] let n = UInt32.readBigEndian(buffer) @Assert(n, 0x12345678) }

func writeBigEndian(Array<Byte>)

public func writeBigEndian(buffer: Array<Byte>): Int64

功能:将 UInt32 值以大端序的方式写入字节数组中。

参数:

  • buffer: Array<Byte> - 缓冲区,用于存放待写入的数据。

返回值:

  • Int64 - 写入的数据的字节数。

异常:

示例:

import std.binary.* import std.unittest.* import std.unittest.testmacro.* main() { let buffer = Array<Byte>(8, item: 0) let n = 0x12345678u32.writeBigEndian(buffer) @Assert(n, 4) @Assert(buffer[..n], [0x12, 0x34, 0x56, 0x78]) }

extend UInt64 <: BigEndianOrder<UInt64>

extend UInt64 <: BigEndianOrder<UInt64>

功能:为 UInt64 扩展 BigEndianOrder 接口,以实现将 UInt64 值和大端序字节序列的转换。

static func readBigEndian(Array<Byte>)

public static func readBigEndian(buffer: Array<Byte>): UInt64

功能:从字节数组中以大端序的方式读取一个 UInt64 值。

参数:

  • buffer: Array<Byte> - 缓冲区,用于存放待读取的数据。

返回值:

异常:

示例:

import std.binary.* import std.unittest.* import std.unittest.testmacro.* main() { let buffer: Array<Byte> = [0x12, 0x34, 0x56, 0x78, 0x90, 0x12, 0x34, 0x56] let n = UInt64.readBigEndian(buffer) @Assert(n, 0x1234567890123456) }

func writeBigEndian(Array<Byte>)

public func writeBigEndian(buffer: Array<Byte>): Int64

功能:将 UInt64 值以大端序的方式写入字节数组中。

参数:

  • buffer: Array<Byte> - 缓冲区,用于存放待写入的数据。

返回值:

  • Int64 - 写入的数据的字节数。

异常:

示例:

import std.binary.* import std.unittest.* import std.unittest.testmacro.* main() { let buffer = Array<Byte>(8, item: 0) let n = 0x1234567890123456u64.writeBigEndian(buffer) @Assert(n, 8) @Assert(buffer[..n], [0x12, 0x34, 0x56, 0x78, 0x90, 0x12, 0x34, 0x56]) }

extend UInt8 <: BigEndianOrder<UInt8>

extend UInt8 <: BigEndianOrder<UInt8>

功能:为 UInt8 扩展 BigEndianOrder 接口,以实现将 UInt8 值和大端序字节序列的转换。

static func readBigEndian(Array<Byte>)

public static func readBigEndian(buffer: Array<Byte>): UInt8

功能:从字节数组中以大端序的方式读取一个 UInt8 值。

参数:

  • buffer: Array<Byte> - 缓冲区,用于存放待读取的数据。

返回值:

异常:

示例:

import std.binary.* import std.unittest.* import std.unittest.testmacro.* main() { let buffer: Array<Byte> = [0x12] let n = UInt8.readBigEndian(buffer) @Assert(n, 0x12) }

func writeBigEndian(Array<Byte>)

public func writeBigEndian(buffer: Array<Byte>): Int64

功能:将 UInt8 值以大端序的方式写入字节数组中。

参数:

  • buffer: Array<Byte> - 缓冲区,用于存放待写入的数据。

返回值:

  • Int64 - 写入的数据的字节数。

异常:

示例:

import std.binary.* import std.unittest.* import std.unittest.testmacro.* main() { let buffer = Array<Byte>(8, item: 0) let n = 0x12u8.writeBigEndian(buffer) @Assert(n, 1) @Assert(buffer[..n], [0x12]) }

interface LittleEndianOrder<T>

public interface LittleEndianOrder<T> { func writeLittleEndian(buffer: Array<Byte>): Int64 static func readLittleEndian(buffer: Array<Byte>): T }

功能:小端序字节序列转换接口。

static func readLittleEndian(Array<Byte>)

static func readLittleEndian(buffer: Array<Byte>): T

功能:从字节数组中以小端序的方式读取一个 T 值。

参数:

  • buffer: Array<Byte> - 缓冲区,用于存放待读取的数据。

返回值:

  • T - T 值。

异常:

func writeLittleEndian(Array<Byte>)

func writeLittleEndian(buffer: Array<Byte>): Int64

功能:将 T 值以小端序的方式写入字节数组中。

参数:

  • buffer: Array<Byte> - 缓冲区,用于存放待写入的数据。

返回值:

  • Int64 - 写入的数据的字节数。

异常:

extend Bool <: LittleEndianOrder<Bool>

extend Bool <: LittleEndianOrder<Bool>

功能:为 Bool 扩展 LittleEndianOrder 接口,以实现将 Bool 值和小端序字节序列的转换。

static func readLittleEndian(Array<Byte>)

public static func readLittleEndian(buffer: Array<Byte>): Bool

功能:从字节数组中以小端序的方式读取一个 Bool 值。

参数:

  • buffer: Array<Byte> - 缓冲区,用于存放待读取的数据。

返回值:

异常:

示例:

import std.binary.* import std.unittest.* import std.unittest.testmacro.* main() { let buffer: Array<Byte> = [0x1] let n = Bool.readLittleEndian(buffer) @Assert(n, true) }

func writeLittleEndian(Array<Byte>)

public func writeLittleEndian(buffer: Array<Byte>): Int64

功能:将 Bool 值以小端序的方式写入字节数组中。

参数:

  • buffer: Array<Byte> - 缓冲区,用于存放待写入的数据。

返回值:

  • Int64 - 写入的数据的字节数。

异常:

示例:

import std.binary.* import std.unittest.* import std.unittest.testmacro.* main() { let buffer = Array<Byte>(8, item: 0) let n = true.writeLittleEndian(buffer) @Assert(n, 1) @Assert(buffer[..n], [0x01]) }

extend Float16 <: LittleEndianOrder<Float16>

extend Float16 <: LittleEndianOrder<Float16>

功能:为 Float16 扩展 LittleEndianOrder 接口,以实现将 Float16 值和小端序字节序列的转换。

static func readLittleEndian(Array<Byte>)

public static func readLittleEndian(buffer: Array<Byte>): Float16

功能:从字节数组中以小端序的方式读取一个 Float16 值。

参数:

  • buffer: Array<Byte> - 缓冲区,用于存放待读取的数据。

返回值:

异常:

示例:

import std.binary.* import std.unittest.* import std.unittest.testmacro.* main() { let buffer: Array<Byte> = [0x40, 0x4A] let n = Float16.readLittleEndian(buffer) @Assert(n, 12.5) }

func writeLittleEndian(Array<Byte>)

public func writeLittleEndian(buffer: Array<Byte>): Int64

功能:将 Float16 值以小端序的方式写入字节数组中。

参数:

  • buffer: Array<Byte> - 缓冲区,用于存放待写入的数据。

返回值:

  • Int64 - 写入的数据的字节数。

异常:

示例:

import std.binary.* import std.unittest.* import std.unittest.testmacro.* main() { let buffer = Array<Byte>(8, item: 0) let n = 12.5f16.writeLittleEndian(buffer) @Assert(n, 2) @Assert(buffer[..n], [0x40, 0x4A]) }

extend Float32 <: LittleEndianOrder<Float32>

extend Float32 <: LittleEndianOrder<Float32>

功能:为 Float32 扩展 LittleEndianOrder 接口,以实现将 Float32 值和小端序字节序列的转换。

static func readLittleEndian(Array<Byte>)

public static func readLittleEndian(buffer: Array<Byte>): Float32

功能:从字节数组中以小端序的方式读取一个 Float32 值。

参数:

  • buffer: Array<Byte> - 缓冲区,用于存放待读取的数据。

返回值:

异常:

示例:

import std.binary.* import std.unittest.* import std.unittest.testmacro.* main() { let buffer: Array<Byte> = [0x00, 0x00, 0x48, 0x41] let n = Float32.readLittleEndian(buffer) @Assert(n, 12.5) }

func writeLittleEndian(Array<Byte>)

public func writeLittleEndian(buffer: Array<Byte>): Int64

功能:将 Float32 值以小端序的方式写入字节数组中。

参数:

  • buffer: Array<Byte> - 缓冲区,用于存放待写入的数据。

返回值:

  • Int64 - 写入的数据的字节数。

异常:

示例:

import std.binary.* import std.unittest.* import std.unittest.testmacro.* main() { let buffer = Array<Byte>(8, item: 0) let n = 12.5f32.writeLittleEndian(buffer) @Assert(n, 4) @Assert(buffer[..n], [0x00, 0x00, 0x48, 0x41]) }

extend Float64 <: LittleEndianOrder<Float64>

extend Float64 <: LittleEndianOrder<Float64>

功能:为 Float64 扩展 LittleEndianOrder 接口,以实现将 Float64 值和小端序字节序列的转换。

static func readLittleEndian(Array<Byte>)

public static func readLittleEndian(buffer: Array<Byte>): Float64

功能:从字节数组中以小端序的方式读取一个 Float64 值。

参数:

  • buffer: Array<Byte> - 缓冲区,用于存放待读取的数据。

返回值:

异常:

示例:

import std.binary.* import std.unittest.* import std.unittest.testmacro.* main() { let buffer: Array<Byte> = [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x29, 0x40] let n = Float64.readLittleEndian(buffer) @Assert(n, 12.5) }

func writeLittleEndian(Array<Byte>)

public func writeLittleEndian(buffer: Array<Byte>): Int64

功能:将 Float64 值以小端序的方式写入字节数组中。

参数:

  • buffer: Array<Byte> - 缓冲区,用于存放待写入的数据。

返回值:

  • Int64 - 写入的数据的字节数。

异常:

示例:

import std.binary.* import std.unittest.* import std.unittest.testmacro.* main() { let buffer = Array<Byte>(8, item: 0) let n = 12.5f64.writeLittleEndian(buffer) @Assert(n, 8) @Assert(buffer[..n], [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x29, 0x40]) }

extend Int16 <: LittleEndianOrder<Int16>

extend Int16 <: LittleEndianOrder<Int16>

功能:为 Int16 扩展 LittleEndianOrder 接口,以实现将 Int16 值和小端序字节序列的转换。

static func readLittleEndian(Array<Byte>)

public static func readLittleEndian(buffer: Array<Byte>): Int16

功能:从字节数组中以小端序的方式读取一个 Int16 值。

参数:

  • buffer: Array<Byte> - 缓冲区,用于存放待读取的数据。

返回值:

异常:

示例:

import std.binary.* import std.unittest.* import std.unittest.testmacro.* main() { let buffer: Array<Byte> = [0x34, 0x12] let n = Int16.readLittleEndian(buffer) @Assert(n, 0x1234i16) }

func writeLittleEndian(Array<Byte>)

public func writeLittleEndian(buffer: Array<Byte>): Int64

功能:将 Int16 值以小端序的方式写入字节数组中。

参数:

  • buffer: Array<Byte> - 缓冲区,用于存放待写入的数据。

返回值:

  • Int64 - 写入的数据的字节数。

异常:

示例:

import std.binary.* import std.unittest.* import std.unittest.testmacro.* main() { let buffer = Array<Byte>(8, item: 0) let n = 0x1234i16.writeLittleEndian(buffer) @Assert(n, 2) @Assert(buffer[..n], [0x34, 0x12]) }

extend Int32 <: LittleEndianOrder<Int32>

extend Int32 <: LittleEndianOrder<Int32>

功能:为 Int32 扩展 LittleEndianOrder 接口,以实现将 Int32 值和小端序字节序列的转换。

static func readLittleEndian(Array<Byte>)

public static func readLittleEndian(buffer: Array<Byte>): Int32

功能:从字节数组中以小端序的方式读取一个 Int32 值。

参数:

  • buffer: Array<Byte> - 缓冲区,用于存放待读取的数据。

返回值:

异常:

示例:

import std.binary.* import std.unittest.* import std.unittest.testmacro.* main() { let buffer: Array<Byte> = [0x78, 0x56, 0x34, 0x12] let n = Int32.readLittleEndian(buffer) @Assert(n, 0x12345678i32) }

func writeLittleEndian(Array<Byte>)

public func writeLittleEndian(buffer: Array<Byte>): Int64

功能:将 Int32 值以小端序的方式写入字节数组中。

参数:

  • buffer: Array<Byte> - 缓冲区,用于存放待写入的数据。

返回值:

  • Int64 - 写入的数据的字节数。

异常:

示例:

import std.binary.* import std.unittest.* import std.unittest.testmacro.* main() { let buffer = Array<Byte>(8, item: 0) let n = 0x12345678i32.writeLittleEndian(buffer) @Assert(n, 4) @Assert(buffer[..n], [0x78, 0x56, 0x34, 0x12]) }

extend Int64 <: LittleEndianOrder<Int64>

extend Int64 <: LittleEndianOrder<Int64>

功能:为 Int64 扩展 LittleEndianOrder 接口,以实现将 Int64 值和小端序字节序列的转换。

static func readLittleEndian(Array<Byte>)

public static func readLittleEndian(buffer: Array<Byte>): Int64

功能:从字节数组中以小端序的方式读取一个 Int64 值。

参数:

  • buffer: Array<Byte> - 缓冲区,用于存放待读取的数据。

返回值:

异常:

示例:

import std.binary.* import std.unittest.* import std.unittest.testmacro.* main() { let buffer: Array<Byte> = [0x56, 0x34, 0x12, 0x90, 0x78, 0x56, 0x34, 0x12] let n = Int64.readLittleEndian(buffer) @Assert(n, 0x1234567890123456i64) }

func writeLittleEndian(Array<Byte>)

public func writeLittleEndian(buffer: Array<Byte>): Int64

功能:将 Int64 值以小端序的方式写入字节数组中。

参数:

  • buffer: Array<Byte> - 缓冲区,用于存放待写入的数据。

返回值:

  • Int64 - 写入的数据的字节数。

异常:

示例:

import std.binary.* import std.unittest.* import std.unittest.testmacro.* main() { let buffer = Array<Byte>(8, item: 0) let n = 0x1234567890123456i64.writeLittleEndian(buffer) @Assert(n, 8) @Assert(buffer[..n], [0x56, 0x34, 0x12, 0x90, 0x78, 0x56, 0x34, 0x12]) }

extend Int8 <: LittleEndianOrder<Int8>

extend Int8 <: LittleEndianOrder<Int8>

功能:为 Int8 扩展 LittleEndianOrder 接口,以实现将 Int8 值和小端序字节序列的转换。

static func readLittleEndian(Array<Byte>)

public static func readLittleEndian(buffer: Array<Byte>): Int8

功能:从字节数组中以小端序的方式读取一个 Int8 值。

参数:

  • buffer: Array<Byte> - 缓冲区,用于存放待读取的数据。

返回值:

异常:

示例:

import std.binary.* import std.unittest.* import std.unittest.testmacro.* main() { let buffer: Array<Byte> = [0x12] let n = Int8.readLittleEndian(buffer) @Assert(n, 0x12) }

func writeLittleEndian(Array<Byte>)

public func writeLittleEndian(buffer: Array<Byte>): Int64

功能:将 Int8 值以小端序的方式写入字节数组中。

参数:

  • buffer: Array<Byte> - 缓冲区,用于存放待写入的数据。

返回值:

  • Int64 - 写入的数据的字节数。

异常:

示例:

import std.binary.* import std.unittest.* import std.unittest.testmacro.* main() { let buffer = Array<Byte>(8, item: 0) let n = 0x12i8.writeLittleEndian(buffer) @Assert(n, 1) @Assert(buffer[..n], [0x12]) }

extend UInt16 <: LittleEndianOrder<UInt16>

extend UInt16 <: LittleEndianOrder<UInt16>

功能:为 UInt16 扩展 LittleEndianOrder 接口,以实现将 UInt16 值和小端序字节序列的转换。

static func readLittleEndian(Array<Byte>)

public static func readLittleEndian(buffer: Array<Byte>): UInt16

功能:从字节数组中以小端序的方式读取一个 UInt16 值。

参数:

  • buffer: Array<Byte> - 缓冲区,用于存放待读取的数据。

返回值:

异常:

示例:

import std.binary.* import std.unittest.* import std.unittest.testmacro.* main() { let buffer: Array<Byte> = [0x34, 0x12] let n = UInt16.readLittleEndian(buffer) @Assert(n, 0x1234u16) }

func writeLittleEndian(Array<Byte>)

public func writeLittleEndian(buffer: Array<Byte>): Int64

功能:将 UInt16 值以小端序的方式写入字节数组中。

参数:

  • buffer: Array<Byte> - 缓冲区,用于存放待写入的数据。

返回值:

  • Int64 - 写入的数据的字节数。

异常:

示例:

import std.binary.* import std.unittest.* import std.unittest.testmacro.* main() { let buffer = Array<Byte>(8, item: 0) let n = 0x1234u16.writeLittleEndian(buffer) @Assert(n, 2) @Assert(buffer[..n], [0x34, 0x12]) }

extend UInt32 <: LittleEndianOrder<UInt32>

extend UInt32 <: LittleEndianOrder<UInt32>

功能:为 UInt32 扩展 LittleEndianOrder 接口,以实现将 UInt32 值和小端序字节序列的转换。

static func readLittleEndian(Array<Byte>)

public static func readLittleEndian(buffer: Array<Byte>): UInt32

功能:从字节数组中以小端序的方式读取一个 UInt32 值。

参数:

  • buffer: Array<Byte> - 缓冲区,用于存放待读取的数据。

返回值:

异常:

示例:

import std.binary.* import std.unittest.* import std.unittest.testmacro.* main() { let buffer: Array<Byte> = [0x78, 0x56, 0x34, 0x12] let n = UInt32.readLittleEndian(buffer) @Assert(n, 0x12345678i32) }

func writeLittleEndian(Array<Byte>)

public func writeLittleEndian(buffer: Array<Byte>): Int64

功能:将 UInt32 值以小端序的方式写入字节数组中。

参数:

  • buffer: Array<Byte> - 缓冲区,用于存放待写入的数据。

返回值:

  • Int64 - 写入的数据的字节数。

异常:

示例:

import std.binary.* import std.unittest.* import std.unittest.testmacro.* main() { let buffer = Array<Byte>(8, item: 0) let n = 0x12345678u32.writeLittleEndian(buffer) @Assert(n, 4) @Assert(buffer[..n], [0x78, 0x56, 0x34, 0x12]) }

extend UInt64 <: LittleEndianOrder<UInt64>

extend UInt64 <: LittleEndianOrder<UInt64>

功能:为 UInt64 扩展 LittleEndianOrder 接口,以实现将 UInt64 值和小端序字节序列的转换。

static func readLittleEndian(Array<Byte>)

public static func readLittleEndian(buffer: Array<Byte>): UInt64

功能:从字节数组中以小端序的方式读取一个 UInt64 值。

参数:

  • buffer: Array<Byte> - 缓冲区,用于存放待读取的数据。

返回值:

异常:

示例:

import std.binary.* import std.unittest.* import std.unittest.testmacro.* main() { let buffer: Array<Byte> = [0x56, 0x34, 0x12, 0x90, 0x78, 0x56, 0x34, 0x12] let n = UInt64.readLittleEndian(buffer) @Assert(n, 0x1234567890123456i64) }

func writeLittleEndian(Array<Byte>)

public func writeLittleEndian(buffer: Array<Byte>): Int64

功能:将 UInt64 值以小端序的方式写入字节数组中。

参数:

  • buffer: Array<Byte> - 缓冲区,用于存放待写入的数据。

返回值:

  • Int64 - 写入的数据的字节数。

异常:

示例:

import std.binary.* import std.unittest.* import std.unittest.testmacro.* main() { let buffer = Array<Byte>(8, item: 0) let n = 0x1234567890123456u64.writeLittleEndian(buffer) @Assert(n, 8) @Assert(buffer[..n], [0x56, 0x34, 0x12, 0x90, 0x78, 0x56, 0x34, 0x12]) }

extend UInt8 <: LittleEndianOrder<UInt8>

extend UInt8 <: LittleEndianOrder<UInt8>

功能:为 UInt8 扩展 LittleEndianOrder 接口,以实现将 UInt8 值和小端序字节序列的转换。

static func readLittleEndian(Array<Byte>)

public static func readLittleEndian(buffer: Array<Byte>): UInt8

功能:从字节数组中以小端序的方式读取一个 UInt8 值。

参数:

  • buffer: Array<Byte> - 缓冲区,用于存放待读取的数据。

返回值:

异常:

示例:

import std.binary.* import std.unittest.* import std.unittest.testmacro.* main() { let buffer: Array<Byte> = [0x12] let n = UInt8.readLittleEndian(buffer) @Assert(n, 0x12) }

func writeLittleEndian(Array<Byte>)

public func writeLittleEndian(buffer: Array<Byte>): Int64

功能:将 UInt8 值以小端序的方式写入字节数组中。

参数:

  • buffer: Array<Byte> - 缓冲区,用于存放待写入的数据。

返回值:

  • Int64 - 写入的数据的字节数。

异常:

示例:

import std.binary.* import std.unittest.* import std.unittest.testmacro.* main() { let buffer = Array<Byte>(8, item: 0) let n = 0x12u8.writeLittleEndian(buffer) @Assert(n, 1) @Assert(buffer[..n], [0x12]) }

interface SwapEndianOrder<T>

public interface SwapEndianOrder<T> { func swapBytes(): T }

功能:反转字节顺序接口。

func swapBytes()

func swapBytes(): T

功能:反转 T 值的字节顺序。

返回值:

  • T - T 值。

extend Int16 <: SwapEndianOrder<Int16>

extend Int16 <: SwapEndianOrder<Int16>

功能:为 Int16 扩展 SwapEndianOrder 接口,以实现将 Int16 值的字节顺序反转。

func swapBytes()

public func swapBytes(): Int16

功能:反转 Int16 值的字节顺序。

返回值:

示例:

import std.binary.* import std.unittest.* import std.unittest.testmacro.* main() { let n = 0x1234i16 let m = n.swapBytes() @Assert(m, 0x3412) }

extend Int32 <: SwapEndianOrder<Int32>

extend Int32 <: SwapEndianOrder<Int32>

功能:为 Int32 扩展 SwapEndianOrder 接口,以实现将 Int32 值的字节顺序反转。

func swapBytes()

public func swapBytes(): Int32

功能:反转 Int32 值的字节顺序。

返回值:

示例:

import std.binary.* import std.unittest.* import std.unittest.testmacro.* main() { let n = 0x12345678i32 let m = n.swapBytes() @Assert(m, 0x78563412) }

extend Int64 <: SwapEndianOrder<Int64>

extend Int64 <: SwapEndianOrder<Int64>

功能:为 Int64 扩展 SwapEndianOrder 接口,以实现将 Int64 值的字节顺序反转。

func swapBytes()

public func swapBytes(): Int64

功能:反转 Int64 值的字节顺序。

返回值:

示例:

import std.binary.* import std.unittest.* import std.unittest.testmacro.* main() { let n = 0x1234567890123456i64 let m = n.swapBytes() @Assert(m, 0x5634129078563412) }

extend Int8 <: SwapEndianOrder<Int8>

extend Int8 <: SwapEndianOrder<Int8>

功能:为 Int8 扩展 SwapEndianOrder 接口,以实现将 Int8 值的字节顺序反转。

func swapBytes()

public func swapBytes(): Int8

功能:反转 Int8 值的字节顺序。

返回值:

示例:

import std.binary.* import std.unittest.* import std.unittest.testmacro.* main() { let n = 0x12i8 let m = n.swapBytes() @Assert(m, 0x12) }

extend UInt16 <: SwapEndianOrder<UInt16>

extend UInt16 <: SwapEndianOrder<UInt16>

功能:为 UInt16 扩展 SwapEndianOrder 接口,以实现将 UInt16 值的字节顺序反转。

func swapBytes()

public func swapBytes(): UInt16

功能:反转 UInt16 值的字节顺序。

返回值:

示例:

import std.binary.* import std.unittest.* import std.unittest.testmacro.* main() { let n = 0x1234u16 let m = n.swapBytes() @Assert(m, 0x3412) }

extend UInt32 <: SwapEndianOrder<UInt32>

extend UInt32 <: SwapEndianOrder<UInt32>

功能:为 UInt32 扩展 SwapEndianOrder 接口,以实现将 UInt32 值的字节顺序反转。

func swapBytes()

public func swapBytes(): UInt32

功能:反转 UInt32 值的字节顺序。

返回值:

示例:

import std.binary.* import std.unittest.* import std.unittest.testmacro.* main() { let n = 0x12345678u32 let m = n.swapBytes() @Assert(m, 0x78563412) }

extend UInt64 <: SwapEndianOrder<UInt64>

extend UInt64 <: SwapEndianOrder<UInt64>

功能:为 UInt64 扩展 SwapEndianOrder 接口,以实现将 UInt64 值的字节顺序反转。

func swapBytes()

public func swapBytes(): UInt64

功能:反转 UInt64 值的字节顺序。

返回值:

示例:

import std.binary.* import std.unittest.* import std.unittest.testmacro.* main() { let n = 0x1234567890123456u64 let m = n.swapBytes() @Assert(m, 0x5634129078563412) }

extend UInt8 <: SwapEndianOrder<UInt8>

extend UInt8 <: SwapEndianOrder<UInt8>

功能:为 UInt8 扩展 SwapEndianOrder 接口,以实现将 UInt8 值的字节顺序反转。

func swapBytes()

public func swapBytes(): UInt8

功能:反转 UInt8 值的字节顺序。

返回值:

示例:

import std.binary.* import std.unittest.* import std.unittest.testmacro.* main() { let n = 0x12u8 let m = n.swapBytes() @Assert(m, 0x12) }