如何输出正负数的二进制数,要八位的.
我写这个输出来有的五位,有的32位,怎么整? 
 public   class   binary   {   
          public   static   void   main(String   args[]) 
          { 
          	byte   p,q; 
          	int   r; 
          	p=47; 
          	q=-47; 
          	   r=p|q; 
          	   System.out.println(Integer.toBinaryString(p)); 
          	System.out.println(Integer.toBinaryString(q)); 
          	System.out.println(Integer.toBinaryString(r));           	           	 
          	}               
 }
------解决方案--------------------public class Test {   
 	public String refineNumber(int number){ 
 		StringBuffer str =null; 
 		str = new StringBuffer(Integer.toBinaryString(number).toString()); 
 		if(str.length()  < 8){ 
 			for(int i =0;i <8-str.length()+1;i++){ 
 				 str = str.insert(0, "0 "); 
 			} 
 		}if(str.length() >  8){ 
 			str =new StringBuffer(str.substring(str.length()-8,str.length())); 
 		} 
 		else{ 
 			; 
 		} 
 		return str.toString(); 
 	} 
 	public static void main(String args[]) { 
 		byte p, q; 
 		int r,x; 
 		p = 47; 
 		q = -47; 
 		r = p | q; 
 		x = 128; 
 		Test t = new Test(); 
 		System.out.println(t.refineNumber(p)); 
 	    System.out.println(Integer.toBinaryString(p)); 
 		System.out.println(Integer.toBinaryString(q)); 
 		System.out.println(t.refineNumber(q)); 
 		System.out.println(Integer.toBinaryString(r)); 
 		System.out.println(t.refineNumber(r)); 
 		System.out.println(t.refineNumber(x)); 
 	}   
 }