在Java中如何实现两个整数如00000001与00100001相加,输出结果为00100001,而非100001?

简单的说就是计算输出结果时,如何保证输出结果的位数,前面不足的补零... 简单的说就是计算输出结果时,如何保证输出结果的位数,前面不足的补零 展开
 我来答
百度网友211658b42
2012-02-15 · TA获得超过3383个赞
知道小有建树答主
回答量:606
采纳率:100%
帮助的人:625万
展开全部
int a = 1;
int b = 1000001;

System.out.println(new java.text.DecimalFormat("0000000000000").format(a+b));

你可以使用java.text.DecimalFormat来格式化你的数字显示文本字符串,具体格式指定参考API文档,我简单告诉你0表示阿拉伯数字,所以指定0000000000后会保持位数,没有值的位上会显示0
snrqtdhuqf
2012-02-15 · TA获得超过274个赞
知道小有建树答主
回答量:203
采纳率:0%
帮助的人:193万
展开全部
package com.cn;

public class TestT {

public static char zero = "0".charAt(0);

public static void main(String []args){
String x = "00000001";
String y = "00100001";
System.out.println(x+" + "+y+" = "+left(Long.toBinaryString(toLong(x)+toLong(y)),8));
}

public static long toLong(String s){

long num = s.charAt(s.length()-1)-zero;
for(int i=s.length()-1;i>0;i--){
num += Integer.valueOf(s.charAt(i)-zero)*(2<<(s.length()-2-i));
}
return num;
}

public static String left(String s,int pos){

StringBuffer sb = new StringBuffer();
if(s.length()<pos){
for(int i=0;i<pos-s.length();i++){
sb.append("0");
}
}
return sb.toString()+s;
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2012-02-15
展开全部
判断加完之后结果的位数,不足的结果前面用0替代。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
niwuqina1
2012-02-15 · TA获得超过271个赞
知道答主
回答量:173
采纳率:0%
帮助的人:56.7万
展开全部
用bigdecimal
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友845f74e61
2012-02-15 · TA获得超过6929个赞
知道大有可为答主
回答量:4050
采纳率:50%
帮助的人:1755万
展开全部
你这两个是什么十进制相加?还是二进制?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式