Files
obitools4/autodoc/docmd/pkg/obifp/uint64.md
T
Eric Coissac 8c7017a99d ⬆️ version bump to v4.5
- Update obioptions.Version from "Release 4.4.29" to "/v/ Release v5"
- Update version.txt from 4.29 → .30
(automated by Makefile)
2026-04-13 13:34:53 +02:00

1.5 KiB
Raw Blame History

Uint64 Type Functionalities Overview

The obifp package provides a custom Uint64 type wrapping Gos native 64-bit unsigned integer (uint64) to support arithmetic, bitwise operations, and type conversions in a structured way.

Core Operations

  • Zero() / MaxValue(): Returns the zero and maximum representable values, respectively.
  • IsZero() / Equals(v): Checks if the value is zero or equal to another.
  • Cmp(v), LessThan(v), etc.: Standard comparison operations returning -1/0/+1 or boolean results.

Arithmetic with Overflow Detection

  • Add/Sub/Mul: Performs 64-bit addition, subtraction, and multiplication.
    • Uses math/bits for low-level operations (bits.Add64, etc.).
    • Panics on overflow (carry ≠ 0), enforcing strict safety.

Bitwise Operations

  • And, Or, Xor, Not(): Standard bitwise logic operations.
  • LeftShift(n) / RightShift(n):
    • Shifts bits left/right by n positions.
    • Uses internal LeftShift64/RightShift64, supporting carry-in for multi-word arithmetic.

Extended Precision Conversions

  • Uint128() / Uint256(): Casts the 64-bit value into larger unsigned integer types (zero-extended).
  • Set64(v): Reassigns the internal value from a raw uint64.

Utility & Logging

  • AsUint64(): Extracts the underlying uint64.
  • Warning on overflow in shift operations (e.g., shifts ≥ 128 bits) via obilog.Warnf.

Designed for use in high-precision or cryptographic contexts where explicit overflow handling and type safety are critical.