许久没有出来现身了,这不,拉着代码出来溜溜。

今天主要想记录的就是十进制转换成二进制的方法。

JS代码

先直接写出代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
//输入整数的input
var decNumber = document.getElementById("dec-number");
//转换按钮
var transBtn = document.getElementById("trans-btn");
//清空按钮
var clearBtn = document.getElementById("clear");
//输出二进制的地方
var spanNum = document.querySelector("span");
//二进制的位数
var bit = document.getElementById("bin-bit");
//整数转换为二进制数值

transBtn.addEventListener("click", transNumber);
clearBtn.addEventListener("click", ClearNumber);

function transNumber() {
if (decNumber.value == "" || isNaN(decNumber.value)) {
alert("请输入整数");
} else{
var num = parseInt(decNumber.value).toString(2);
var numLen = num.length
var bitLen = parseInt(bit.value);

if (bitLen > numLen) {
spanNum.innerHTML = PrefixInteger(num, bitLen);
} else{
spanNum.innerHTML = num;
}
}
}

//num传入的数字,n需要的字符长度
function PrefixInteger(num,n){
return (Array(n).join('0') + num).slice(-n);
}

//清空
function ClearNumber() {
decNumber.value = '';
bit.value = '';
spanNum.innerHTML = '';
}

难点解释

下面在正对我认为的难点进行解释:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
1. 当isNaN(val) 为true时   表示val不是整数(为了当你输入的不是数字时进行提示)

2. number上的toString 可以对数字的进制进行转换

var num = 25;

num.toString(2); 转换成二进制

num.toString(8); 转换成八进制

num.toString(16); 转换成十进制

3. join() 方法用于把数组中的所有元素放入一个字符串。

4. slice(-n) 负数表示倒着截取
123 -> 0000123 -> 0123

5. PrefixInteger(num,n)这一函数表示num数字前面自动补零

源码地址

https://github.com/yutiJin/dev-learn/tree/master/changeBit

最近在准备软件评测师考试,加油,已经看书三天了,经过了解才知道软件测试所涉及的范围很广,内容很多,没有我想象中的那么简单,好像说只有百分之三十的人才能通过,可我还是想试试,努力一把,看了就好好学点东西,这是我目前的想法。不过呢,js我也不想放弃,难得学一门语言,嘻嘻,其实吧,我是个小懒虫,不知道能坚持多久,不管怎么样,加油吧,小鱼儿。