Js十进制和二进制转换

217 阅读2分钟

1.十进制转换为二进制

该转换可以用 toString() 方法来实现

  • toString() 方法返回一个表示该对象的字符串

  • 语法:numberObject.toString(radix)

    • 描述:把数字转换为对应的字符串
    • radix: 可选。规定表示数字的基数
  • radix:2 ~ 36 之间的整数。若省略该参数,则使用基数 10。但是要注意,如果该参数是 10 以外的其他值,则 ECMAScript 标准允许实现返回任意值

  • 返回值类型:string

所以,如果想将十进制数转换为二进制数(整数和小数都可以用这种方法),只需要使用 numberObject.toString(radix) 方法即可

image.png

2. 二进制整数部分转换为十进制

这部分很简单,直接用 parseInt(string, radix) 就可以啦~

  • parseInt() 函数可解析一个字符串,并返回一个整数

  • parseInt(string, radix)

    • string: 必需。要被解析的字符串
    • radix : 可选。表示要解析的数字的基数
  • radix:该值介于 2 ~ 36 之间。如果省略该参数或其值为 0,则数字将以 10 为基础来解析。如果它以 “0x” 或 “0X” 开头,将以 16 为基数。如果该参数小于 2 或者大于 36,则 parseInt() 将返回 NaN

parseInt("10"); //返回 10
parseInt("19", 10); //返回 19 ==>1*10+9 => (10+9)
parseInt("11", 2); //返回 3 ==>1*2+1 (2+1)
parseInt("123", 4); //返回 27 ==>1*16+2*4+3 =>(16+8+3)

image.png

注意事项

parseInt(string,radix)中右边的参数radix,不能小于左边 需要计算的单个字符串,否则会停止后面的计算,

比如: (1)parseInt(“66”,4) //因为4比6小,返回NaN

(2) parseInt(“123456789”,5) // 看着很长,但其实只会返回一个194,因为从5开始后面的都比5大,相当于 parseInt(“1234”,5) => (1*5^3)+ (2*5*5)+ (3*5)+(4*1) = 125+50+15+4 = 194