JAVASCRIPT
VUE
REACT
NODE
ES6
TYPESCRIPT

二进制与十进制转化

2020. 06. 09    

二进制与十进制转化

例如:12转二进制

  12/2 = 6 余 0
  6/2 =  3 余 0
  3/2 =  1 余 1
  1/2 =  0 余 1
  
  那么12的二进制就是 1100
  
  function numToBinary(num) {
    let arr = [];
    while (num >= 1) {
      arr.unshift(num % 2)
      num = Math.floor(num / 2);
    }
    return arr.join('')
  }
  console.log(numToBinary(5))
  
  
  function binaryToNum(num) {
    let str = num.toString();
    let len = str.length;
    let arr = [],sum = 0;
    for (let index = 1; index <= Math.pow(2,len); index+=index) {
      arr.push(index)
    }
    str.split('').reverse().map((item,index)=>{
      sum +=item*arr[index]
    })
    return sum
  }
console.log(binaryToNum(111001110))
  

例如:1100转十进制

	...	16	8	4	2	1   
			1	1	0	0  x
——————————————————————————
			8	4	0	0
——————————————————————————
			8 + 4 = 12