十进制转二进制
const a = 5;
console.log(a.toString(2)); //101
二进制转十进制
parseInt用法:接受2个参数,参数1是字符串(不是字符串的会先强制转为字符串),参数2是参数1所属的基数,如2进制就是2。然后函数将其第一个参数转换为一个字符串,对该字符串进行解析,返回一个十进制整数或 NaN。
const a = 101;
console.log(parseInt(a,2)); //5
35整数转二进制,思路。一直除以2,取余数,除完为止。
35
35/2 = 17 1
17/2 = 8 1
8/2 = 4 0
4/2 = 2 0
2/2 = 1 0
1/2 = 0 1
0.375小数转二进制,思路。小数剩余部分一直乘以2,取整数部分
0.375
0.375*2 = 0.75 0
0.75*2 = 1.5 1
0.5*2 = 1.0 1
0B二进制 0O八进制
const b = 0B0101;
const c = 0O101;
console.log(b,c)
Number新增方法
//Number.isFinite,参数不是数值型,一律返回false
console.log(Number.isFinite(5)) //true
console.log(Number.isFinite(0.5)) //true
console.log(Number.isFinite(Infinity)) //false
console.log(Number.isFinite('imooc')) //false
console.log(Number.isFinite(true)) //false
console.log(Number.isFinite(10/0)) //false
console.log(Number.isNaN(5)); //false
console.log(Number.isNaN(NaN)); //true
// parseInt和window下的parseInt一样,全局数据会逐步模块化。。
console.log(Number.parseInt(5.5)); //5
console.log(Number.parseInt(-5.5)); //-5
console.log(Number.isInteger(-5)) //是否是整数
// 多位二进制,IEEE 754 双精度标准,精度缺失,导致小数计算不精准。可以让其变成整数再计算(如先x10,再/10)。
console.log(0.1+0.2 === 0.3) ; //false
Math
console.log(2 ** 10) //1024 幂运算符 等同于Math.pow
const max = Math.pow(2,53) //最大整数
console.log(max)
console.log(max+1)
console.log(Number.MAX_SAFE_INTEGER === max-1) //true
// 去掉小数部分,保留整数部分
console.log(Math.trunc(5.5)) //5
console.log(Math.trunc(true)) //1
console.log(Math.trunc(false)) //0
console.log(Math.trunc(undefined)) //NaN
console.log(Math.trunc(null)) //0
// 数值和字符串以外的都返回NaN,字符串不是数字开头的也返回NaN
console.log(Number.parseInt(5.5)) //5
console.log(Number.parseInt(true)) //NaN
console.log(Number.parseInt(false)) //NaN
console.log(Number.parseInt(undefined)) //NaN
console.log(Number.parseInt(null)) //NaN
网友评论