给大家出个题目:怎么用java程序实现将负数十进制转为二进制?
最好有详细算法和源程序!下面是我做的,但不能转负数。麻烦帮我改进改进!
class San{
static int er=0;
static String s="";
static String Zhuan(int z){
while(z!=0&&z>0){
er=z%2;
s=s+er;
z=z/2;
}
return s;
}
public static void reverse(int shi) {
String s=Zhuan(shi);
char sc[] = s.toCharArray();
char sr[] = new char[s.length()];
for (int i=sc.length-1,j=0;i>=0;i--,j++){
sr[j]=sc[i];
}
String res=new String(sr);
System.out.print(res);
}
public static void main(String args[]){
int shi=Integer.parseInt(args[0]);
if(shi==0) System.out.println(shi);
reverse(shi);
}
}
最好有详细算法和源程序!下面是我做的,但不能转负数。麻烦帮我改进改进!
class San{
static int er=0;
static String s="";
static String Zhuan(int z){
while(z!=0&&z>0){
er=z%2;
s=s+er;
z=z/2;
}
return s;
}
public static void reverse(int shi) {
String s=Zhuan(shi);
char sc[] = s.toCharArray();
char sr[] = new char[s.length()];
for (int i=sc.length-1,j=0;i>=0;i--,j++){
sr[j]=sc[i];
}
String res=new String(sr);
System.out.print(res);
}
public static void main(String args[]){
int shi=Integer.parseInt(args[0]);
if(shi==0) System.out.println(shi);
reverse(shi);
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货