十进制转换为二进制的,基本算法是这个意思
1. 对X进行模2运算。结果非0既1。这就是第一位(最右端)二进制数。2. 将X 除以2,并丢弃余数(也就是用“\”进行整数除法)。3. 如果上一步结果为0,则结束转换,否则从第一步起继续进行转换。如果你还不懂,我们举个例子。假设我们要将13转换为二进制形式(记住,转换是从右到左进行的)1.13 模2等于1,因此第一位(最右边)二进制代码为1。2.13 \ 2等于 6。3.6 模2等于 0,因此第二位二进制代码为0。4.6 \ 2 等于3。5.3 模2 等于1,因此第三位二进制代码为1。6.3 \ 2 等于1. 7.1 模2 等于 1,因此第四位二进制代码为1。8. 1 \ 2 等于0,这表示转换结束。从右到左排列一下上面的结果,就会得出13的二进制数是1101。
import javax.swing.JOptionPane;
public class BaseTen2Two{
   public static void main(String[] args){
        String strBaseTen;
        String prompt="请输入待转换的整数";
        strBaseTen=JOptionPane.showInputDialog(prompt);
        int baseTen=Integer.parseInt(strBaseTen);
        String result="";
        int remainder;
        while(baseTen!=0){
           remainder= baseTen%2;
           baseTen/=2;
           result=remainder+result;
        }
        JOptionPane.showMessageDialog(null,result,"黄聪明提醒您",JOptionPane.INFORMATION_MESSAGE);
    System.exit(0);
    }
}
result=remainder+result;  按照意思是把每次求模后得到的数连接在一起,但是一个整数(remainder)加上一个字符(result)再赋给一个字符变量是什么意思?为什么这样就能把一些零散的余数拼在一起?谢谢

解决方案 »

  1.   

    这个就是为了正确显示的问题,如果 result是int, remainder 也是int,就成了数字加法了,但是result用string, 就可以把得出来的余数一个一个的写进去,所以这个是把余数一位一位排进一个string变量里
      

  2.   

    既然你的result是String型的,最后肯定是了,任何类型的碰到+号都会自动转换为字符串型的,前提是在这个+号中必须连接的有这个字符串。实际上这个+号是调用了StringBuffer的append方法了的。
      

  3.   

    这的+可以理解为连接符号,但是如为System.out.println(9+8+"88");
    中9+8就不能这么理解了
    System.out.println("88"+9+8);这里的+都是连接符号