1.将十进制装换为n进制(var s = num.toString(n);)
获取数字 num 二进制形式第 bit 位的值。注意:
1、bit 从 1 开始
2、返回 0 或 1
3、举例:2 的二进制为 10,第 1 位为 0,第 2 位为 1
示例1
输入
128, 8
输出
1
思路:通过num.toString(2)能直接将num转换为2进制数格式的字符串,利用下标就能将对应值取出来。题目返回的数字是从右往左,因此下标为倒数。
function valueAtBit(num, bit) {
var s = num.toString(2);
return s[s.length - bit];
}
2.将n进制转化为十进制( parseInt(str,n))
给定二进制字符串,将其换算成对应的十进制数字
示例1
输入
‘11000000’
输出
192
思路:parseInt方法可以将其它进制转换为十进制,只需要给该方法传入需要转换的字符串和该字符串的进制表示两个参数即可。
function base10(str) {
/**
其它进制转十进制
parseInt(str,2)
parseInt(str,8)
parseInt(str,16)
*/
return parseInt(str,2);
}
3.将给定数字转换成二进制字符串。如果字符串长度不足 8 位,则在前面补 0 到满8位。
示例1
输入
65
输出
01000001
function convertToBinary(num) {
var str = num.toString(2);//str为字符串
while(str.length < 8) {
str = "0" + str;
}
return str;
}