给大家出个题目:怎么用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);
 }
}