module Comandante::Bits
 
  Overview
Some bitwise helper functions
Defined in:
comandante/bits.crConstant Summary
- 
        BIT_MASKS = {8 => BitMasks(UInt8).get_masks, 16 => BitMasks(UInt16).get_masks, 32 => BitMasks(UInt32).get_masks, 64 => BitMasks(UInt64).get_masks, 128 => BitMasks(UInt128).get_masks}
- 
        Bit masks for every bit position for a UInt type 
- 
        MASKS = {8 => {0.to_u8, 1.to_u8, UInt8::MAX}, 16 => {0.to_u16, 1.to_u16, UInt16::MAX}, 32 => {0.to_u32, 1.to_u32, UInt32::MAX}, 64 => {0.to_u64, 1.to_u64, UInt64::MAX}, 128 => {0.to_u128, 1.to_u128, UInt128::MAX}}
- 
        Masks for each size of UInt of 0,1, and MAX 
Class Method Summary
- 
        .bit_set?(pos, uint) : Bool
        
          Tests if a bit is set 
- 
        .bits_to_string(uint) : String
        
          Returns binary representation as String 
- 
        .get_bits(uint, from : Int32, count : Int32)
        
          Returns n bits from position 
- 
        .loop_over_bits(uint, &) : Nil
        
          Loop over bits of a bitmap (UInt types) 
- 
        .loop_over_set_bits(uint, &) : Nil
        
          Loop over set bits of a bitmap (UInt types) 
- 
        .popcount_bits(uint, from, count) : Int32
        
          Popcount n bits 
- 
        .set_bits(uint, a : Array(Int8))
        
          Sets bits on Uint Types 
- 
        .set_bits(uint, a : Array(Int16))
        
          Sets bits on Uint Types 
- 
        .set_bits(uint, a : Array(Int32))
        
          Sets bits on Uint Types 
- 
        .set_bits(uint, a : Array(Int64))
        
          Sets bits on Uint Types 
- 
        .set_bits(uint, a : Array(Int128))
        
          Sets bits on Uint Types 
- 
        .store_as_int(uint : UInt8) : Int8
        
          Stores uint in int so we can serialize/store in places where uint is not supported 
- 
        .store_as_int(uint : UInt16) : Int16
        
          Stores uint in int so we can serialize/store in places where uint is not supported 
- 
        .store_as_int(uint : UInt32) : Int32
        
          Stores uint in int so we can serialize/store in places where uint is not supported 
- 
        .store_as_int(uint : UInt64) : Int64
        
          Stores uint in int so we can serialize/store in places where uint is not supported 
- 
        .store_as_int(uint : UInt128) : Int128
        
          Stores uint in int so we can serialize/store in places where uint is not supported 
- 
        .store_as_uint(int : Int8) : UInt8
        
          Stores int as uint for conversion serialize/store in places where uint is not supported 
- 
        .store_as_uint(int : Int16) : UInt16
        
          Stores int as uint for conversion serialize/store in places where uint is not supported 
- 
        .store_as_uint(int : Int32) : UInt32
        
          Stores int as uint for conversion serialize/store in places where uint is not supported 
- 
        .store_as_uint(int : Int64) : UInt64
        
          Stores int as uint for conversion serialize/store in places where uint is not supported 
- 
        .store_as_uint(int : Int128) : UInt128
        
          Stores int as uint for conversion serialize/store in places where uint is not supported 
Macro Summary
- 
        type_bits(t)
        
          Returns the number of bits in a type 
Class Method Detail
Returns n bits from position
Example
To get a new uint with only count bits from given position
x = get_bits(u, from: 3, count 2])Sets bits on Uint Types
Example
To set bits 1,7 and 8
set_bits(x, [1, 7, 8])Sets bits on Uint Types
Example
To set bits 1,7 and 8
set_bits(x, [1, 7, 8])Sets bits on Uint Types
Example
To set bits 1,7 and 8
set_bits(x, [1, 7, 8])Sets bits on Uint Types
Example
To set bits 1,7 and 8
set_bits(x, [1, 7, 8])Sets bits on Uint Types
Example
To set bits 1,7 and 8
set_bits(x, [1, 7, 8])Stores uint in int so we can serialize/store in places where uint is not supported
Stores uint in int so we can serialize/store in places where uint is not supported
Stores uint in int so we can serialize/store in places where uint is not supported
Stores uint in int so we can serialize/store in places where uint is not supported
Stores uint in int so we can serialize/store in places where uint is not supported
Stores int as uint for conversion serialize/store in places where uint is not supported
Stores int as uint for conversion serialize/store in places where uint is not supported
Stores int as uint for conversion serialize/store in places where uint is not supported
Stores int as uint for conversion serialize/store in places where uint is not supported
Stores int as uint for conversion serialize/store in places where uint is not supported