问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

二进制相加 怎么用java实现

发布网友 发布时间:2023-02-07 22:07

我来回答

2个回答

热心网友 时间:2024-12-14 19:12

两个数相加,会得到一个结果,和一个进位的结果,
然后将这个进位的结果后面加0补位,然后再和这个结果相加。如此递归,知道进位全部是0为
public class $ {
public static void main(String[] args) {

String s0 = "100";// 十进制4

StringBuffer result = new StringBuffer();
StringBuffer jinwei = new StringBuffer();

System.out.println(test(result, jinwei, ));
}

private static String test(StringBuffer result, StringBuffer jinwei, String s0, String {

// 没有进位了就退出
if (s0.length() > 0 && s0.indexOf("1") < 0) {
return s1;
}
//位数补齐
int len0 = s0.length();
int len1 = s1.length();

int minLen = Math.max(len0, len1);

s0 = buqi(len0, minLen) + s0;
s1 = buqi(len1, minLen) + s1;

for (int i = s0.length() - 1; i >= 0; i--) {
String str0 = s0.substring(i, i + 1);
String str1 = s1.substring(i, i + 1);
add(result, jinwei, str0, str1);
}

String tmpJinwei = jinwei.reverse().toString() + "0";
jinwei.delete(0, jinwei.length());

String tmpResult = result.reverse().toString();
result.delete(0, result.length());

return test(result, jinwei, tmpJinwei, tmpResult);
}

private static void add(StringBuffer result, StringBuffer jinwei, String str0, String str1) {

// 00相加为0,不进位
if ("0".equals(str0) && "0".equals(str1)) {
result.append("0");
jinwei.append("0");
return;
}

// 11相加为0,进位1
if ("1".equals(str0) && "1".equals(str1)) {
result.append("0");
jinwei.append("1");
return;
}

// 其他情况,相加为1,不进位
result.append("1");
jinwei.append("0");
}

private static String buqi(int len0, int minLen) {
String tmp = "";
for (int i = len0; i < minLen; i++) {
tmp += "0";
}
return tmp;
}
}

热心网友 时间:2024-12-14 19:12

有个思路:写三个函数,2的几次方函数,二进制转十进制函数,十进制转二进制函数;再利用字符串转数字,就可以吧二进制加减变为一般的加减法,再转会二进制...
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
便携式发电机十大名牌 冬天夜跑同时锻炼身体和意志的句子锦集 冬天的时候跑步可以达到46~60分钟 可是夏天了跑步25分钟左右就已经感觉... 孩子病毒性感冒咳嗽厉害怎么办 严重的病毒性感冒几天能好 宝宝六个月因为病毒性感冒而咳嗽有痰可每次咳嗽出来的痰他吐不出来怎 ... ios购买的app怎么退款 求助!书法高手!用什么书法来“魏亮”这二字最漂亮? 万事胜意,喜乐长安繁体 什么叫喜乐长安 ...转为二进制,表示为一个字符串,请问这个字符串可以进行加法运算... C++中怎么实现二进制的加减法 成本法和权益法 微信官方收款码旧版和新板的区别 微信新版本和旧版本哪个安全 北京高考安排科目时间 亳州市高三期末联考时间 岳阳市高三期末考试时间安排 太原市高三期末考试时间 聊城高三期末考试时间2022 高三考试时间表 银行卡挂失后补办卡号改变了,那如果给以前的卡号打钱还能收到不?_百度... 培训发展经理作什么? 我的爱奇艺自动续费ios应用内支付查的到是哪里的钱吗 爱奇艺一分钱扣的违约金在哪扣的 excel2021附加模块勾选不显示内容 自学考试在报考的时候有没有什么限制?有入学考试要考吗? 本科网络报考师大要不要考试 自己怎么报考电大 需要考试吗? 2022太原市公参民报考需要考试么 电信三星Note3里的自带软件占内存怎么删 上海戏剧学院附属戏曲学校考进上戏大学的概率 如何让q群管家变得更智能 梦见受惊狂奔的马 梦见马惊 梦见马受惊把人撞死了 64年腊廿四日的阳历怎么表述 58岁属兔的腊月二十三生19641963年的几月几号出生? 如何减少自然灾害? 如何减少自然灾害 阿迪达斯求验证 如何注册匿名的 手机丢了手机卡也丢了,我不去补办,但是我不会让这个卡停机,一直给它交... 梦见左手小指甲断了 梦见小指指甲断了 梦见左手指甲断了一节什么意思? 梦见左手拇指指甲断了 梦见两个小指指甲断了 公司把员工辞退怎样不违法 二手房有户口名额是什么意思