or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

crc1.mdcrc16-algorithms.mdcrc24.mdcrc32-algorithms.mdcrc8-algorithms.mdindex.md
tile.json

crc1.mddocs/

CRC1 Algorithm

CRC1 is a simple 1-bit checksum algorithm that provides basic error detection capabilities.

Import

import crc1 from "crc/crc1";
import crc1Calculator from "crc/calculators/crc1";
const crc1 = require("crc/crc1");
const crc1Calculator = require("crc/calculators/crc1");

API

CRC1 Function

/**
 * Calculate CRC1 checksum
 * @param value - Input data as string, ArrayBuffer, or Buffer
 * @param previous - Previous CRC value for incremental calculation (optional)
 * @returns CRC1 checksum as unsigned number
 */
function crc1(value: BufferInput, previous?: number): number;

/**
 * CRC1 function with additional properties
 */
interface CRC1Module extends CRCModule {
  /** Returns signed CRC1 value */
  signed: (value: BufferInput, previous?: number) => number;
  /** Returns unsigned CRC1 value (same as main function) */  
  unsigned: (value: BufferInput, previous?: number) => number;
  /** CRC model identifier: "crc1" */
  model: "crc1";
}

CRC1 Calculator

/**
 * Raw CRC1 calculator function for Uint8Array input
 * @param current - Input data as Uint8Array
 * @param previous - Previous CRC value for incremental calculation (optional, defaults to 0)
 * @returns CRC1 checksum as number
 */
function crc1Calculator(current: Uint8Array, previous?: number): number;

Usage

Basic CRC1 Calculation

import crc1 from "crc/crc1";

// Calculate CRC1 of a string
const result = crc1("hello");
console.log(result); // 8-bit checksum value

// Calculate CRC1 of a buffer
const buffer = Buffer.from("test data", "utf8");
const bufferCrc = crc1(buffer);

Incremental CRC1 Calculation

import crc1 from "crc/crc1";

// Calculate CRC1 incrementally
let crcValue = crc1("first");
crcValue = crc1("second", crcValue);
crcValue = crc1("third", crcValue);
console.log(crcValue);

Using the Raw Calculator

import crc1Calculator from "crc/calculators/crc1";

// Convert string to Uint8Array
const encoder = new TextEncoder();
const data = encoder.encode("hello");

// Calculate using raw calculator
const result = crc1Calculator(data);
console.log(result);

Signed vs Unsigned Results

import crc1 from "crc/crc1";

const data = "test";

// Unsigned result (default)
const unsigned = crc1(data);
const alsoUnsigned = crc1.unsigned(data);

// Signed result
const signed = crc1.signed(data);

// Model information
console.log(crc1.model); // "crc1"

Algorithm Details

CRC1 is a simple checksum algorithm that:

  • Sums all input bytes
  • Takes modulo 256 of the sum
  • Provides basic error detection capabilities
  • Returns an 8-bit result despite the "CRC1" naming

This algorithm is primarily useful for simple data integrity checks where a lightweight checksum is sufficient.