javascript 图表映射 二进制和十进制的互转
function intoBin(num){ var arr = [1,2,4,8,16,32,64,128]; var num_arr = num.split('').reverse();//分割字符串 return num_arr.reduce(function(v,t,i){return v + t*arr[i];},0);//从右向左精简求和 } console.log(intoBin('1010'));//10
function intoBin(num){ var arr =1,2,4,8,16,32,64,128],i=0; var num_arr = num.split(''); return num_arr.reduceRight(function(v,t){return v + t*arr[i++];},0); } //reduceRight 的函数的第三个参数是从大到小减法,和reduce不一样。
var bintoInt = function(number) { var arr = [128, 64, 32, 16, 8, 4, 2, 1];//8位数字 arr.forEach(function(n, i, a) { if (number >= n) { number -= n;//进行递减判断 a[i] = 1; } else { a[i] = 0;//转码 } }); return arr; } console.log(bintoInt(134));//[1, 0, 0, 0, 0, 1, 1, 0]
当你的需要是字符串或者数组的时候可以考虑,时间复杂度自己算吧,我也不会。