# bit-twiddle **Repository Path**: ArkTSCentralRepository/bit-twiddle ## Basic Information - **Project Name**: bit-twiddle - **Description**: Bit twiddling hacks for ArkTS - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-09 - **Last Updated**: 2026-06-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # bit-twiddle 基于[bit-twiddle](https://www.npmjs.com/package/bit-twiddle)原库1.0.2版本进行适配 > This is a collection of miscellaneous bit twiddling hacks ported to ArkTS ## Install ```sh ohpm install bit-twiddle ``` ## API ### `sign(v)` Computes the sign of the integer v. Returns: * -1 if v < 0 * 0 if v === 0 * +1 if v > 0 ### `abs(v)` Returns the absolute value of the integer v ### `min(x,y)` Computes the minimum of integers x and y ### `max(x,y)` Computes the maximum of integers x and y ### `isPow2(v)` Returns `true` if v is a power of 2, otherwise false. ### `log2(v)` Returns an integer approximation of the log-base 2 of v ### `log10(v)` Returns log base 10 of v. ### `popCount(v)` Counts the number of bits set in v ### `countTrailingZeros(v)` Counts the number of trailing zeros. ### `nextPow2(v)` Rounds v up to the next power of 2. ### `prevPow2(v)` Rounds v down to the previous power of 2. ### `parity(v)` Computes the parity of the bits in v. ### `reverse(v)` Reverses the bits of v. ### `interleave2(x,y)` Interleaves a pair of 16 bit integers. Useful for fast quadtree style indexing. (See wiki: http://en.wikipedia.org/wiki/Z-order_curve ) ### `deinterleave2(v, n)` Deinterleaves the bits of v, returns the nth part. If both x and y are 16 bit, then it is true that: ```typescript import { deinterleave2, interleave2 } from "bit-twiddle"; deinterleave2(interleave2(x,y), 0) === x deinterleave2(interleave2(x,y), 1) === y ``` ### `interleave3(x,y,z)` Interleaves a triple of 10 bit integers. Useful for fast octree indexing. ### `deinterleave3(v, n)` Same deal as `deinterleave2`, only for triples instead of pairs ### `nextCombination(x)` Returns next combination ordered colexicographically.