js模拟栈---进制转化。十进制转任意进制进制,任意进制转十进制
var Stack = (function(){
var items = new WeakMap();
//先入后出,后入先出
class Stack{
constructor(){
items.set(this,[]);
}
push(ele){
//入栈
var ls = items.get(this);
ls.push(ele);
}
pop(){
//出栈
var ls = items.get(this);
return ls.pop();
}
size(){
//获取栈的长度
var ls = items.get(this);
return ls.length;
}
print(){
//打印栈
var ls = items.get(this);
return ls.toString();
}
}
return Stack;
})(); /**
* num 需要转化的数字
* base 转化的进制,默认为 2
* */
function devide(num,base){
base = Math.floor(base) || 2;
if(typeof num != "number" || num < 0 || base > 16 || base < 2){
throw new Error("参数错误");
return '';
}
num = Math.floor(num); var code = "0123456789ABCDEF";
var stack = new Stack();
var res = '';
var rem;
while(num > 0){
rem = num % base;
stack.push(rem);
num = Math.floor(num/base);
} while(stack.size() > 0){
res += code[stack.pop()];
} return res;
}
console.log(devide(15,16))
任意进制转十进制
function transfrom(num,base){
//任意进制转十进制
var bases = [0,1,2,3,4,5,6,7,8,9,"A","B","C","D","E","F"];
var config = {};
for(var k = 0; k < base; k++){
config[bases[k]] = k;
}
num = String(num);
num = num.toUpperCase();
var count = 0;
var res = 0;
var i;
while(num.length > 0){
i = num[num.length - 1];
i = config[i];
res = res + i * Math.pow(base,count);
num = num.substr(0,num.length-1);
count++;
}
return res;
} console.log(transfrom('ff',16));
console.log(transfrom('11',2));
js模拟栈---进制转化。十进制转任意进制进制,任意进制转十进制的更多相关文章
- js模拟栈
栈:先入后出,后入先出 链表:先入先出,后入后出 下面使用js实现栈 var Stack = (function(){ var items = new WeakMap(); //先入后出,后入先出 c ...
- js模拟栈---汉诺塔
var Stack = (function(){ var items = new WeakMap(); //先入后出,后入先出 class Stack{ constructor(){ items.se ...
- python3 第十章 - 如何进行进制转化
在计算机的世界里,2进制是主流,而在人类的自然世界中,10进制是主流,那么在这之间必然就会存在进制转化的问题.本章我们就来谈谈进制转化,也希望通过本章加深您对前些章所学知识的理解. 原理:先说说关于位 ...
- 【风马一族_C】进制转化
#include "stdio.h" #include "Math.h" #define number 50 //设置数组的长度 int num10; //十进 ...
- 编码/解码和进制转化工具hURL
编码/解码和进制转化工具hURL 在安全应用中,各种编码方式被广泛应用,如URL编码.HTML编码.BASE64等.而在数据分析时候,各种进制的转化也尤为频繁.为了方便解决这类问题,Kali Li ...
- C#-进制转化
(一)数制 计算机中采用的是二进制,因为二进制具有运算简单,易实现且可靠,为逻辑设计提供了有利的途径.节省设备等优点,为了便于描述,又常用八.十六进制作为二进制的缩写.一般计数都采用进位计数,其特点是 ...
- c语言进制转化
#include <stdio.h> // 进制转化 int main(void) { ; ; int i3 = 0x32C; printf( printf( printf("十 ...
- python数据结构:进制转化探索
*********************************第一部分*************************************************************** ...
- 【Java学习笔记之四】java进制转化
十进制转成十六进制: Integer.toHexString(int i) 十进制转成八进制 Integer.toOctalString(int i) 十进制转成二进制 Integer.toBinar ...
随机推荐
- hdu2594 Simpsons' Hidden Talents【next数组应用】
Simpsons’ Hidden Talents Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java ...
- TOP100summit【分享实录-网易】构建云直播分发网络
本篇文章内容来自2016年TOP100summit网易视频云.网易杭州研究院服务端技术专家邵峰的案例分享.编辑:Cynthia 邵峰:网易视频云.网易杭州研究院服务端技术专家浙江大学计算机专业博士毕业 ...
- [No000016C]做企业分析的三个重要工具
个工具>这本书,内容很基础,但是逻辑很清晰.里面介绍了三个常用的分析方法:pest分析法.波特五力模型以及swot分析法,为脑袋里没有分析思路的人提供了分析框架. 故将这三个分析方法做成了思维导 ...
- 【视频】dx dy的意思 微分的定义 导数符号的意思
视频解说 http://www.bilibili.com/video/av8565224/
- shell之awk面试小案例
[root@chavinking mnt]# cat textfile chavinking 1 2 3 4 5 6 nope 1 2 3 4 5 6 [root@chavinking mnt]# c ...
- [DPDK] 转发 DPDK分析
前半部分,对于背景和需求的分析,写的相当好啊! 原文地址:https://www.jianshu.com/p/0ff8cb4deaef 背景分析 前10年中,网络程序性能优化的目标主要是为了解决C10 ...
- redis哨兵模式,数据尽量少的丢失
min-slave-to-write 1 ->至少要有1个从节点 min-slaves-max-lag 10 ->超过10秒如果数据不能同步则拒绝新的写请求
- elasticsearch更新doc文档
在elasticsearch-head中: http://localhost:9200/my_index/products/2/ _update { "script" : { &q ...
- 洛谷P2303 [SDOi2012] Longge的问题 数论
看懂了题解,太妙了TT但是想解释的话可能要很多数学公式打起来太麻烦了TT所以我就先只放代码具体推演的过程我先写在纸上然后拍下来做成图片放上来算辣quq 好的那我先滚去做题了做完这题就把题解放上来.因为 ...
- 【Python全栈-HTML】HTML入门
HTML入门介绍 参考: https://www.bilibili.com/video/av21663728/?p=339 http://www.cnblogs.com/yuanchenqi/arti ...