diff --git a/src/Maths/BinaryConvert.ts b/src/Maths/BinaryConvert.ts new file mode 100644 index 00000000..824d80b4 --- /dev/null +++ b/src/Maths/BinaryConvert.ts @@ -0,0 +1,20 @@ +/** + * @function BinaryConvert + * @description Convert the decimal to binary. + * @param {number} num - The input integer + * @return {string} - Binary of num. + * @see [BinaryConvert](https://www.programiz.com/javascript/examples/decimal-binary) + * @example BinaryConvert(12) = 1100 + * @example BinaryConvert(12 + 2) = 1110 + */ + +export const BinaryConvert = (num: number): string => { + let binary = '' + + while (num !== 0) { + binary = (num % 2) + binary + num = Math.floor(num / 2) + } + + return binary +} diff --git a/src/Maths/test/BinaryConvert.test.ts b/src/Maths/test/BinaryConvert.test.ts new file mode 100644 index 00000000..686e5c14 --- /dev/null +++ b/src/Maths/test/BinaryConvert.test.ts @@ -0,0 +1,22 @@ +import { BinaryConvert } from '../BinaryConvert' + +describe('BinaryConvert', () => { + it('should return the correct value', () => { + expect(BinaryConvert(4)).toBe('100') + }) + it('should return the correct value', () => { + expect(BinaryConvert(12)).toBe('1100') + }) + it('should return the correct value of the sum from two number', () => { + expect(BinaryConvert(12 + 2)).toBe('1110') + }) + it('should return the correct value of the subtract from two number', () => { + expect(BinaryConvert(245 - 56)).toBe('10111101') + }) + it('should return the correct value', () => { + expect(BinaryConvert(254)).toBe('11111110') + }) + it('should return the correct value', () => { + expect(BinaryConvert(63483)).toBe('1111011111111011') + }) +})