function s32
s32(endianness?: Endianness): Coder<number>

Creates a coder for 32-bit signed integers.

This function creates a coder that can encode/decode 32-bit signed integers (range -2,147,483,648 to 2,147,483,647). The endianness parameter determines the byte order used.

Examples

Example 1

import { assertEquals } from "@std/assert";
import { s32 } from "@hertzg/binstruct/numeric";

// Create big-endian and little-endian coders
const s32be = s32("be");
const s32le = s32("le");

// Test data
const testValue = -2147483648;

// Encode and decode with big-endian
const bufferBE = new Uint8Array(4);
const bytesWrittenBE = s32be.encode(testValue, bufferBE);
const [decodedBE, bytesReadBE] = s32be.decode(bufferBE);

assertEquals(decodedBE, testValue);
assertEquals(bytesWrittenBE, 4);
assertEquals(bytesReadBE, 4);

// Encode and decode with little-endian
const bufferLE = new Uint8Array(4);
const bytesWrittenLE = s32le.encode(testValue, bufferLE);
const [decodedLE, bytesReadLE] = s32le.decode(bufferLE);

assertEquals(decodedLE, testValue);
assertEquals(bytesWrittenLE, 4);
assertEquals(bytesReadLE, 4);

Parameters

optional
endianness: Endianness = be

The byte order to use ("be" for big-endian, "le" for little-endian), defaults to "be"

Return Type

Coder<number>

A Coder<number> for 32-bit signed integers

Usage

import { s32 } from "mod.ts";