【问题标题】:Function to convert Number to Binary string将数字转换为二进制字符串的函数
【发布时间】:2017-06-28 18:49:02
【问题描述】:

编写一个函数将传入的数字转换为二进制字符串。该函数正在创建一个正确的二进制序列,但我的比较函数在比较等于 binaryIndex[0] 的数字时跳过了第一个索引(例如 n = 32、16、8、4)。任何想法为什么?

这一步创建一个二进制有序数组,我将使用它来检查传入的参数:

var Bin = function(n) {
  var x =1;
  var binSeq=[];
  var converted=[];
  for (var i=0; x <= n; i++) {
  binSeq.unshift(x)
  x = x+x
  }
  console.log(binSeq)

下一步应该比较并输出 1 和 0 的二进制序列:但它正在跳过 if (n === binSeq[0])

for (var i=0; i < binSeq.length; i++) {
  if ((n - binSeq[i]) >= 0) {
  converted.unshift(1);
  n=n-binSeq[i]
  } else {converted.unshift(0)}
}
console.log(converted)
}

CodePen 链接:https://codepen.io/fdeppe/pen/GEozKY?editors=1111

【问题讨论】:

    标签: javascript function binary


    【解决方案1】:

    其实这样就可以了

    function dec2bin(dec){
        return (dec >>> 0).toString(2);
    }
    

    在这里解释 ==> Negative numbers to binary string in JavaScript

    -3 >>> 0(右逻辑移位)将其参数强制转换为无符号整数,这就是为什么您会得到 -3 的 32 位二进制补码表示。

    【讨论】:

    • 你不能只做 dec.toString(2) 吗?
    猜你喜欢
    • 2010-10-16
    • 1970-01-01
    • 2012-02-27
    • 2018-04-28
    • 1970-01-01
    • 1970-01-01
    • 2017-07-11
    • 2013-07-17
    相关资源
    最近更新 更多