
在Java中如何实现两个整数如00000001与00100001相加,输出结果为00100001,而非100001?
5个回答
展开全部
int a = 1;
int b = 1000001;
System.out.println(new java.text.DecimalFormat("0000000000000").format(a+b));
你可以使用java.text.DecimalFormat来格式化你的数字显示文本字符串,具体格式指定参考API文档,我简单告诉你0表示阿拉伯数字,所以指定0000000000后会保持位数,没有值的位上会显示0
int b = 1000001;
System.out.println(new java.text.DecimalFormat("0000000000000").format(a+b));
你可以使用java.text.DecimalFormat来格式化你的数字显示文本字符串,具体格式指定参考API文档,我简单告诉你0表示阿拉伯数字,所以指定0000000000后会保持位数,没有值的位上会显示0
展开全部
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;
}
}
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替代。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用bigdecimal
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你这两个是什么十进制相加?还是二进制?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询