算法练习(二进制求和)


public class SF {

public String test(String a, String b) {

char[] achars = a.toCharArray();

char[] bchars = b.toCharArray();

//反转后得数组

        char[] A_Revert =new char[achars.length];

char[] B_Revert =new char[bchars.length];

int Aj =0;

int Bj =0;

for (int i = achars.length -1; i >=0; i--) {

A_Revert[Aj] = achars[i];

Aj++;

}

for (int i = bchars.length -1; i >=0; i--) {

B_Revert[Bj] = bchars[i];

Bj++;

}

int AOf10 =0;//A得十进制

        int BOf10 =0;//B得十进制

        for (int i = A_Revert.length -1; i >=0; i--) {

if (A_Revert[i] =='1') {

AOf10 = (int) (AOf10 + Math.pow(2, i));

}

}

for (int i =0; i < B_Revert.length; i++) {

if (B_Revert[i] =='1') {

BOf10 = (int) (BOf10 + Math.pow(2, i));

}

}

int sumOf10 = AOf10 + BOf10;

if (sumOf10 >0) {

String i = _2(sumOf10);

System.out.println(i);

return i;

}

return "0";

}

StringBuilders =new StringBuilder();

//十进制转换二进制

    public String _2(int num) {

if (num>=2){

//不被整除

            if (num %2 !=0) {

s.insert(0,"1");

_2(num /2);

}else {

s.insert(0,"0");

_2(num /2);

}

}else{

s.insert(0,"1");

}

return s.toString();

}

public static void main(String[] args) {

SF S =new SF();

S.test("1010","1011");

//S.test("11", "1");

    }

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔...
    开心的锣鼓阅读 3,347评论 0 9
  • 【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一...
    阿里高级软件架构师阅读 3,314评论 0 19
  • 各校历年复试机试试题 清华、北大、华科试题详细笔记部分,少笔记部分与少数leetcode【含个人整理笔记】 一、详...
    十里江城阅读 1,223评论 0 1
  • 中午,我们一家从厦门经福州由温州中转回到了无锡。这次说走就走的旅行虽说匆忙了些,但也给我们一家带来了许多值得回味...
    四季如春阿利阅读 249评论 0 0
  • “你们两个,干什么的!” 皇城的士兵循着爆炸的声响而来,看见趴在地上连呼吸都变得小心翼翼的王万亿和被飞扬的尘土围绕...
    卡斯哈阅读 211评论 0 0