前端进制数字进制转换以及随机功能的实现

进制就是达到指定位置的时候进一位

常见进制

  • 十进制: 0 1 2 3 4 5 6 7 8 9 10 11 12 ... 99 100 101

  • 二进制: 0 1 10 11 100 101 110 111 1000

  • 八进制: 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21

  • 十六进制: 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

十进制转换成其它进制

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Web阿成

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值