牛客JS33_二进制转换(toString / parseInt)

在这里插入图片描述
解题
通过num.toString(2)能直接将num转换为2进制数格式的字符串,利用下标就能将对应值取出来。题目返回的数字是从右往左,因此下标为倒数,所以就是s.length-bit

function valueAtBit(num, bit) {
   
  var s = num.toString(2);
     return s[s.length - bit]; //注意理解该处
 }

Q1:s[s.length - bit]; s不应该是字符串吗,怎么可以用数组的方法来找bit位置的值
A1:js 字符串、数组是类数组,区别是字符串是不可变的,而 数组是可变的。不可变是指字符串的成员函数不会改变原始值,而创建返回一个新的字符串

Q2:用parseInt 函数可以吗
A2:parseInt(num,进制)是将num看成几进制再转化为十进制整数


一、知识点 - toString方法(number > string)

定义
toString() 方法可把一个 Number 对象转换为一个字符串,并返回结果。

语法
NumberObject.toString(radix)

  • NumberObject可以是二进制、八进制、十进制、十六进制,以开头格式为准

参数

  • radix - (可选) 规定表示数字的基数,使 2 ~ 36 之间的整数。例如,当 radix 为 2 时,会被转换为二进制值表示的字符串。
  • 省略则默认10
  • 但是要注意,如果该参数是 10 以外的其他值,则 ECMAScript 标准允许实现返回任意值。

返回值
返回radix进制的字符串

实例

    var a = 32;
    console.log(a.toString(2));  //返回字符串100000
    console.log(a.toString(4));  
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值