From bbdb5cf38a2a21650c249b0c89c0b3a67561daa0 Mon Sep 17 00:00:00 2001 From: YATIN KATHURIA <47096348+Yatin-kathuria@users.noreply.github.com> Date: Tue, 14 Dec 2021 11:01:52 +0530 Subject: [PATCH] merge: Binary Convert (#865) * Binary Convert * Update link * add more test cases --- Maths/BinaryConvert.js | 31 +++++++++++++++++++++++-------- Maths/test/BInaryConvert.test.js | 14 +++++++++++++- 2 files changed, 36 insertions(+), 9 deletions(-) diff --git a/Maths/BinaryConvert.js b/Maths/BinaryConvert.js index 4bc80502f..b1b6ce7fc 100644 --- a/Maths/BinaryConvert.js +++ b/Maths/BinaryConvert.js @@ -1,10 +1,25 @@ -const BinaryConvert = (number) => { - const result = [] - let i - for (i = number; i > 0; i = parseInt(i / 2)) { - result.push(i % 2) // push the value (remainder)to array - } return Number(result.reverse().join('')) - // reverse index of array as string ,join and change the type of value to become Number +/** + * @function BinaryConvert + * @description Convert the decimal to binary. + * @param {Integer} num - The input integer + * @return {Integer} - Binary of num. + * @see [BinaryConvert](https://www.programiz.com/javascript/examples/decimal-binary) + * @example BinaryConvert(12) = 1100 + * @example BinaryConvert(12 + 2) = 1110 + */ + +const BinaryConvert = (num) => { + let power = 1 + let binary = 0 + + while (num) { + const rem = num % 2 + num = Math.floor(num / 2) + binary = rem * power + binary + power *= 10 + } + + return binary } -// call function and value as parameter to passing the value + export { BinaryConvert } diff --git a/Maths/test/BInaryConvert.test.js b/Maths/test/BInaryConvert.test.js index 63036754a..53f18e5ff 100644 --- a/Maths/test/BInaryConvert.test.js +++ b/Maths/test/BInaryConvert.test.js @@ -1,10 +1,22 @@ import { BinaryConvert } from '../BinaryConvert' -describe('Binary Convert', () => { +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) + }) })