我想从EditText接受数字输入并将其转换为指定的基数,

即如果输入是二进制,我想将其转换为十六进制。

我知道有一些预定义的函数可以将十进制转换为其他基数,但是当输入不是十进制时,我找不到如何转换的方法。

任何帮助,将不胜感激。

谢谢。

最佳答案

请尝试以下代码,

public void dec(View view)
{
    try
    {
        EditText decimal = (EditText) findViewById(R.id.editDec);
        EditText hex = (EditText) findViewById(R.id.editHex);
        EditText bin = (EditText) findViewById(R.id.editBin);
        EditText oct = (EditText) findViewById(R.id.editOct);
        int deci = Integer.parseInt(decimal.getText().toString().trim());

        System.out.println ( "Original " + deci );
        System.out.println ( "Hexa : " + Integer.toHexString(deci) );
        System.out.println ( "Deci :" + Integer.toBinaryString(deci));
        System.out.println ( "Oct : " + Integer.toOctalString(deci) );

        hex.setText(String.valueOf(Integer.toHexString(deci)));
        bin.setText(String.valueOf(Integer.toBinaryString(deci)));
        oct.setText(String.valueOf(Integer.toOctalString(deci)));
    }
    catch ( Exception e )
    {
        System.out.println ( "Exception : " + e.toString() );
    }
}

07-24 14:19