本文详解JavaScript中数字进制的转换方法。通过toString()实现十进制向其他进制字符串的转换,利用parseInt()将其他进制字符串解析为十进制数字。同时介绍toFixed()方法用于保留指定小数位,并封装随机整数与随机颜色生成函数,提供完整代码示例。
数字进制转换
在计算机科学中,进制是一种计数方式。
其核心规则是当数值达到指定的基数时,向高位进一位。
常见的进制包括十进制、二进制、八进制和十六进制。
十进制使用0到9这十个数字进行计数,例如:0 1 2 3 4 5 6 7 8 9 10 11 12 ... 99 100 101。
二进制仅使用0和1两个数字,例如:0 1 10 11 100 101 110 111 1000。
八进制使用0到7这八个数字,例如:0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21。
十六进制使用0-9和a-f(或A-F)共16个字符,例如:0 1 2 3 4 5 6 7 8 9 a b c d e f 10 ... 19 ... 1a 1b 1c 1d 1e 1f 20 21 ...。
十进制转换成其它进制
在JavaScript中,可以使用Number对象的toString()方法,在将数字转换为字符串时指定目标进制。
语法格式为:toString(你要转换的进制)。
该方法返回转换后的字符串结果。
需要注意的是,转换好的结果是字符串类型。
var num = 100
console.log(num.toString(2)) // 1100100
console.log(num.toString(8)) // 144
console.log(num.toString(16)) // 64其它进制转换成十进制
可以使用parseInt()方法,在将字符串解析为数字时,指定源字符串的进制,并将其转换为十进制数值。
语法格式为:parseInt(要转换的字符串,当作几进制来转换)。
该方法返回转换后的数值结果,即把原字符串视为指定进制数后得到的十进制值。
需要注意的是,结果是数字类型。
var str = 100
console.log(parseInt(str, 8)) // 64 把 100 当作一个 八进制 的数字转换成 十进制 以后得到的
console.log(parseInt(str, 16)) // 256 把 100 当作 十六进制 的数字转换成 十进制 以后得到的
console.log(parseInt(str, 2)) // 4 把 100 当作 二进制 的数字转换成 十进制 以后得到的保留小数位
toFixed()方法可将Number对象四舍五入为指定小数位数的数字。
语法格式为:数字.toFixed(要保留的小数点后的位数)。
该方法返回一个字符串类型的小数,其小数点后固定有指定的位数。
如果原数字的小数位数不足,系统会自动使用0补齐。
var n = 100.123
// 把 n 保留 2 位小数以后赋值给 res
var res = n.toFixed(2)
console.log(res) //100.12
//返回的是字符串类型
console.log(typeof res); //string
//保留的小数位数多余原数字的小数位数
var res1 = n.toFixed(4)
console.log(res1) //100.1230 保留的位数不够用0补齐案例-随机整数封装
function fn(a, b) {
// 1. 确定两个数字的大小关系
var min = Math.min(a, b)
var max = Math.max(a, b)
// 2. 求出两数差
var sub = max - min
// 3. 求出 0 ~ sub 之间的随机整数
var r1 = Math.floor(Math.random() * (sub + 1))
// 4. 把 r1 + min
var res = r1 + min
return res
}
//优化上述方案1:
function fn(a, b) {
// 1. 确定两个数字的大小关系
var min = Math.min(a, b)
var max = Math.max(a, b)
return Math.floor(Math.random() * (max - min + 1)) + min
}
// 优化上述方案2:
function fn(a, b) {
return Math.floor(Math.random() * (Math.abs(a - b) + 1)) + Math.min(a, b)
}案例-封装函数返回随机颜色字符串
// 这是我们分装好的 获取随机整数的方法
function randomNum(a, b) {
return Math.floor(Math.random() * (Math.abs(a - b) + 1)) + Math.min(a, b)
}
// rgb 颜色实现
// 先定义一个函数
function randomColor() {
// 定义一个颜色
var color = ''
// 设置我们的颜色
var r = randomNum(0, 255)
var g = randomNum(0, 255)
var b = randomNum(0, 255)
// 把我们的颜色拼接成rgb的格式
color = `rgb(${r},${g},${b})`
// 返回我们定义的颜色
return color
}
// 十六进制的颜色实现
function randomColor() {
// 定义一个字符串 , 因为是十六进制的所以我们在定义的时候就加上#
var color = '#'
// 因为我们需要三个随机数,我们就循环三次
for (var i = 0; i < 3; i++) {
// 得到0-255之间的随机数
var r = randomNum(0, 255)
// 判断我们得到的随机数是不是小于16,因为小于16的数转成
// 十进制是一位,不能满足我们的颜色要求 , 需要我们补一个 0
r = r < 16 ? '0' + r.toString(16) : r.toString(16)
// 拼接到我们的颜色字符串上
color += r
}
// 返回我们定义的颜色
return color
}
// // 使用
var res = randomColor()
console.log(res);
// document.body.style.backgroundColor = res以上就是JavaScript数学对象——数字进制转换的详细内容,更多关于JavaScript数字进制转换的资料请关注本站其它相关文章!