上一篇已经讲到了什么是栈;压栈的作用是将节点有顺序的压进栈内就和压盘子一样,先进后出;弹栈的作用是可以将放入的节点按照先进后出的规则弹出;
先讲解一下进制转换的原理:
现在随便有一个数 比方说是 15 ,15用二进制表示 是 1111 算法为下:
15/2=7.......1;
7/2 =3........1;
3/2 =1........1;
1/2 =0........1;
把这些余数从下网上排列起来 就是 1111 我们再来一个8的二进制转换:
8/2 =4..........0;
4/2 =2..........0;
2/2 =1...........0;
1/2 =0...........1;
从下网上排列就是 1000 也就是八的二进制。
所以就可以想到把这些余数放进一个容器里,然后按照先放后出,晚放先出的原则打印出来就是转换进制的方法,这种方法非常复合 栈 的结构;
所以就可以用js写出:
栈已建好,在上一篇章:
var stack = new Stack();
function toTwo(num){
var arr = [];
while(num>0){
v = Math.floor(num/2);
y = num%2;
num = v;
arr.push(y);
}
return arr;
}
console.log(toTow(15)); // [1,1,1,1];
console.log(toTow(8)); //[1,0,0,0];
上面是转换二进制的方法 其实不管转换几进制的原理都和转换二进制一样 转换二进制就是出2 转换四进制就是 除4 最后都是取余 然后将余数 倒叙排列 就可以了。
所以掌握上面的原理 转换几进制都不再是问题。