Code Monkey home page Code Monkey logo

bitwise's Issues

Smart "Convert To" Function

Figures out if input is string, integer, buffer, bits and converts them.

bitwise.convert([0,0,1,0,1,0,1,0], 'byte') === 42
bitwise.convert(Buffer<42>, 'byte') === 42

Add integer.addBit, integer.removeBit and improve integer.setBit, integer.toggleBit, integer.getBit

Hello, integer.addBit and integer.removeBit methods should be added to the library.

An implementation could look like this:

add-bit.ts

export default (int32: number, position: number): number => int32 | (1 << position)

remove-bit.ts

export default (int32: number, position: number): number => int32 & ~(1 << position)

Also integer.setBit, integer.toggleBit and integer.getBit functions could be improved:

set-bit.ts

// Current.
export default (int32: number, position: number, value: Bit): Bit =>
	<Bit>(value === 1 ? int32 | (1 << position) : int32 & ~(1 << position))

// Proposed. The return type should be number, not Bit.
export default (int32: number, position: number, value: Bit): number =>
	(value === 1 ? int32 | (1 << position) : int32 & ~(1 << position))

// Proposed. Would be nice if we could pass a boolean to setBit.
export default (int32: number, position: number, value: Bit | boolean): number =>
	(!!value ? int32 | (1 << position) : int32 & ~(1 << position))

toggle-bit.ts

// Current.
export default (int32: number, position: number) => int32 ^ (1 << position)

// Proposed. The return type should be specified.
export default (int32: number, position: number): number => int32 ^ (1 << position)

get-bit.ts

// Current.
export default (int32: number, position: number): Bit =>
	<Bit>((int32 >> position) & 1)

// Proposed. Unsigned right shift should be used.
export default (int32: number, position: number): Bit =>
	<Bit>((int32 >>> position) & 1)

bitwise.byte.read(17) => Cannot read property 'read' of undefined

I had used to be happy with bitwise but this code doesn't work anymore.

const bitwise = require('bitwise')

let binFlags = bitwise.byte.read(17)

console.log(binFlags)
let binFlags = bitwise.byte.read(17)
                           ^

TypeError: Cannot read property 'read' of undefined

I've used to use readByte from version < 1.0.0 but this function disappeared.

Extend Operation Functionality

Can you please implement bit shift operations like logical shift, arithmetic shift and cyclic shift ?

  • Logical Shift (#45 โ€” currently stuck)
  • Arithmetic Shift (#47 โ€” currently stuck)
  • Cyclic Shift (#49)

Fix Naming

Currently, bitwise.(buffer|byte).(read|write) use inconsistent naming. It should be converted to bitwise.(integer|bits).to(Buffer|Byte) etc..

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.