zoukankan      html  css  js  c++  java
  • 67. 二进制求和(范例解析)

    我的思路:

    1.补充a,b中长度短的位数

    2.模拟进位

    3.最后单独判断最高位是否进位

    范例代码:

    var addBinary = function(a, b) {
      let [i, j] = [a.length - 1, b.length - 1];
      let carry = 0;
      let ans = "";
      //巧妙利用或运算符,当a,b长度不一致的时候能够继续遍历完全。
      //或carry可以在遍历长度结束后判断最高位是否需要进位。
      while (i >= 0 || j >= 0 || carry) {
        let sum = 0;
        //sum是a,b当前位置的整数和,加上if语句是为了判断最高位计算完了后是否还需要进位
        //如需进位则sum=0,最后运算后sum=1
        if (i >= 0) sum += a[i] - "0";
        if (j >= 0) sum += b[j] - "0";
        sum += carry;
        //通过~~运算符来取整,效果是sum<2则不进位,否则进位。
        carry = ~~(sum / 2);
        sum = sum % 2;
        //每次把sum和之前的运算结果连接。
        ans = sum + ans;
        i--;
        j--;
      }
      return ans;
    };
  • 相关阅读:
    rails best particseceeeeeeeeeeee
    clear out all firefox plugin
    named scope on rail3
    javascript保留两位小数
    rails
    CVSNT权限配置
    rails session使用好文章
    rails session security
    javascript断点调试方法
    rails3发邮件
  • 原文地址:https://www.cnblogs.com/remly/p/10382418.html
Copyright © 2011-2022 走看看