进制之间的转换

进制之间的转换

开发工具与关键技术:进制
作者:张国军
撰写时间:2019年04月08日

进制之间的转换,我刚开始学的时候感觉很难,但是经过自己的摸索之后得出了其中的规律。进制之间的转换其实并不难(这是我在摸索出规律之后觉得的,哈哈),主要的是我们要找出其中的规律。至于进制有什么用,能用在什么地方,,我也不知道,那就得靠各位自己去怎么使用了。
首先我们要知道进制有多少进制的,我就知道有(二进制、八进制、十进制、十六进制),其他的还有没有我也不知道了。
那么大家看一下我所写的代码和效果。
在这里插入图片描述
这个是我做的一个简单mvc的代码测试。

@{
   Layout = null;
}

<!DOCTYPE html>

<html>
<head>
   <meta name="viewport" content="width=device-width" />
   <title>add</title>
</head>
<body>
   <div> 
       <select id="Change">
           <option value="2">二进制</option>
           <option value="8">八进制</option>
           <option value="10">十进制</option>
           <option value="16">十六进制</option>
       </select>
       <input id="mojsf" type="text" name="name" value=""  /><select id="Target">
           <option value="2">二进制</option>
           <option value="8">八进制</option>
           <option value="10">十进制</option>
           <option value="16">十六进制</option>
       </select>
       <input type="text" name="name" value="" id="results" />
       <button id="transition" onclick="TurnSixteen()" type="button" >转换</button>
   </div>
   <script>
      
       function TurnSixteen() {
           var change = document.getElementById("Change").value;//获取第一个进制
           var target = document.getElementById("Target").value;//目标进制
           var Inquire = document.getElementById("mojsf").value;//待转变值
           if (Inquire == undefined || Inquire == null) {
               Inquire = "";
           }
           var DruggID = Inquire.split("");
           var Nowprice = DruggID;
           var ten;
           if (change != 10) {
               ten = 0;
               for (var i = 0; i < Nowprice.length; i++) {
                   var j = (Nowprice.length - 1) - i;
                   if (Nowprice[i] == "A" || Nowprice[i] == "a") {
                       Nowprice[i] = 10;
                       }
                   if (Nowprice[i] == "B" || Nowprice[i] == "b") {
                       Nowprice[i] = 11;
                       }
                   if (Nowprice[i] == "C" || Nowprice[i] == "c") {
                       Nowprice[i] = 12;
                       }
                   if (Nowprice[i] == "D" || Nowprice[i] == "d") {
                       Nowprice[i] = 13;
                       }
                   if (Nowprice[i] == "E" || Nowprice[i] == "e") {
                       Nowprice[i] = 14;
                       }
                   if (Nowprice[i] == "F" || Nowprice[i] == "f") {
                       Nowprice[i] = 15;
                       }
                   ten += Nowprice[i] * Math.pow(change, j);
               }
           } else {
               ten = "";
               for (var i = 0; i < Nowprice.length; i++) {
                   ten += Nowprice[i];
                   Nowprice[i] = 0;
               }
           }
           var over = [];
           for (var i = 0; i < Nowprice.length*4; i++) {
               if (over[i] == null || over[i] == "") {
                   over[i] = 0;
               } 
           }
           over[over.length - 1] += parseInt(ten);
           for (var i = over.length - 1; i >= 0; i--) {
               for (over[i]; over[i] >= target; over[i] - target) {
                   over[i] = over[i] - target;
                   over[i - 1] = over[i - 1] + 1;
               }
           }
           for (var i = 0; i < over.length; i++) {
               if (over[i] == 0) {
                   over[i] = "";
               } else {
                   i = over.length + 1;
               }
           }
           for (var i = 0; i < over.length; i++) {
               if (over[i] == 10) {
                   over[i] = "A";
               }
               if (over[i] == 11) {
                   over[i] = "B";
               }
               if (over[i] == 12) {
                   over[i] = "C";
               }
               if (over[i] == 13) {
                   over[i] = "D";
               }
               if (over[i] == 14) {
                   over[i] = "E";
               }
               if (over[i] == 15) {
                   over[i] = "F";
               }
           }
           var ss="";
           for (var i = 0; i < over.length; i++) {
                ss += ""+over[i];
           }
           document.getElementById("results").value = ss;
           }
   </script>
</body>
</html>

我的代码大致的思路就是,我们先将获取的值转化为十进制,然后通过十进制作为一个中间站再转为其他进制,我这里使用最多的是数组,我将它们放进数组里面然后挨个处理。特别需要注意的是十六进制,它存在特殊的"A,B,C,D,E,F",我这里是将它进行处理改变为“10,11,12,13,14,15”,然后再进行计算。
可能大家有很多的疑问、不一样的想法,欢迎大家在评论区言论。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值