zoukankan      html  css  js  c++  java
  • 二进制求和

    给定两个二进制字符串,返回他们的和(用二进制表示)。

    样例

    a = 11

    b = 1

    返回 100

     1 public class Solution {
     2     /**
     3      * @param a a number
     4      * @param b a number
     5      * @return the result
     6      */
     7     public String addBinary(String a, String b) {
     8         // Write your code here
     9         long temp1 = changeLong(a);
    10         long temp2 = changeLong(b);
    11         long temp3 = temp1 + temp2;
    12         String s = changeBin(temp3);
    13         return s;
    14     }
    15     
    16      /**
    17      * 把一个二进制的字符串变成一个十进制的long型的数字。
    18      * @param a
    19      * @return
    20      */
    21     public static long changeLong(String a)
    22     {
    23         if(a =="0")
    24         {
    25             return 0L;
    26         }
    27         long sum = 0L;
    28         long l = Long.parseLong(a);
    29         List<Long> list = new ArrayList<>();
    30         int count = 0;
    31         while( l > 0)
    32         {
    33             long temp = l % 10;
    34             list.add(temp);
    35             l /= 10;
    36             count++;
    37         }
    38 
    39         for(int i = count-1; i >= 0; i--)
    40         {
    41             double pow = Math.pow(2, i);
    42             sum += list.get(i) * Math.pow(2,i);
    43         }
    44         return sum;
    45     }
    46 
    47     /**
    48      * 将一个十进制的数字变成二进制的字符串。
    49      * @param a
    50      * @return
    51      */
    52     public String changeBin(long a)
    53     {
    54         if(a == 0L)
    55         {
    56             return "0";
    57         }
    58         List<Long> list = new ArrayList<>();
    59         int count = 0;
    60         while(a > 0)
    61         {
    62             long temp = a % 2;
    63             list.add(temp);
    64             count++;
    65             a /= 2;
    66         }
    67         StringBuffer sbf = new StringBuffer();
    68         for(int i = list.size()-1; i >= 0; i--)
    69         {
    70             sbf.append(list.get(i));
    71         }
    72         return sbf.toString();
    73     }
    74 }
  • 相关阅读:
    redis基本命令1
    MySQL笔记01(黑马)
    尚硅谷Java——宋红康笔记【day25-day29】
    尚硅谷Java——宋红康笔记【day19-day24】
    Java网络编程实践
    框架高频面试题
    多线程面试题
    尚硅谷Java——宋红康笔记【day11-day18】
    尚硅谷Java——宋红康笔记【day6-day10】
    尚硅谷Java——宋红康笔记【day1-day5】
  • 原文地址:https://www.cnblogs.com/zkycode/p/7007218.html
Copyright © 2011-2022 走看看