Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

YesDrX/bitarray

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

43 Commits

Repository files navigation

nimble MIT

bitarray

A simple bitarray library for nim.

Installation

git clone https://github.com/YesDrX/bitarray.git
cd bitarray
nimble install

or

nimble install nimbitarray

Example

import bitarray
when isMainModule:
 var
 a = newBitsArray(70)
 b = newBitsArray(70)
 
 echo " a = ",a
 echo " b = ",b
 echo "set bits ..."
 a.setBits(0,1,2,3,4,69)
 b.setBits(6,7,8,9,65)
 echo " a = ",a
 echo " b = ",b
 echo "a & b = ", a & b
 echo "a | b = ", a | b
 echo "a ^ b = ", a ^ b
 echo " ~a = ", ~a
 echo "a.shl(1) =",a.shl(1)
 echo "a.shl(2) =",a.shl(2)
 echo "a.shl(3) =",a.shl(3)
 echo "a.shl(69)=",a.shl(69)
 echo "a.shr(1) =",a.shr(1)
 echo "a.shr(2) =",a.shr(2)
 echo "a.shr(3) =",a.shr(3)
 echo "a.shr(69)=",a.shr(69)
 echo "basic types"
 echo (-7).toBitsArray
 echo (7).toBitsArray
 echo (-1.555).toBitsArray
 echo (1.555).toBitsArray
 echo (-7.int16).toBitsArray
 echo (7.int16).toBitsArray
 a = 0000000000000000000000000000000000000000000000000000000000000000000000
 b = 0000000000000000000000000000000000000000000000000000000000000000000000
set bits ...
set [0,1,2,3,4,69]-th bit of a
 a = 1111100000000000000000000000000000000000000000000000000000000000000001
set [6,7,8,9,65]-th bit of a
 b = 0000001111000000000000000000000000000000000000000000000000000000010000
a & b = 0000000000000000000000000000000000000000000000000000000000000000000000
a | b = 1111101111000000000000000000000000000000000000000000000000000000010001
a ^ b = 1111101111000000000000000000000000000000000000000000000000000000010001
 ~a = 0000011111111111111111111111111111111111111111111111111111111111111110
a.shl(1) =1111000000000000000000000000000000000000000000000000000000000000000010
a.shl(2) =1110000000000000000000000000000000000000000000000000000000000000000100
a.shl(3) =1100000000000000000000000000000000000000000000000000000000000000001000
a.shl(69)=1000000000000000000000000000000000000000000000000000000000000000000000
a.shr(1) =0111110000000000000000000000000000000000000000000000000000000000000000
a.shr(2) =0011111000000000000000000000000000000000000000000000000000000000000000
a.shr(3) =0001111100000000000000000000000000000000000000000000000000000000000000
a.shr(69)=0000000000000000000000000000000000000000000000000000000000000000000001
expand a to 100 bits: 1111100000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000
127.uint32.toBitsArray = 11111110000000000000000000000000
127.uint32.toBitsArray.reverseBits = 00000000000000000000000001111111
127.uint32.toBitsArray.reverseBits.reverseBits = 11111110000000000000000000000000
(uint32.high-3).toBitsArray = 00111111111111111111111111111111
(uint32.high-3).toBitsArray.reverseBits = 11111111111111111111111111111100

About

A simple bitarray library for nim.

Topics

Resources

Stars

Watchers

Forks

Packages

Contributors

Languages

AltStyle によって変換されたページ (->オリジナル) /