Java十进制转换为二进制、八进制、十六进制

public class JinZhiZhuanHua {

	public static void main(String[] args) {
		//使用查表法将十进制转换为二进制、八进制、十六进制
		int num=60;
		toBin(num);
		tooct(0);
		toHex(60);
	   }
		//转换为二进制
	public static void toBin(int num){
		conversion(num,1,1);
		}
		//(转换为八进制
	public static void tooct(int num){
		conversion (num,7,3);
		}
		//转换为十六进制
	public static void toHex(int num){
		conversion (num,15,4);
		}
		//转换
	public static void conversion(int num, int diwei, int yiwei) {
	     //如果num等于0,结果输出为0
		if (num==0){
			System.out.println("num="+0) ;
			return;
		}
			//定义一个包含二进制、八进制、十六进制的表
			char[] chs={'0','1','2','3','4','5','6','7','8','9',
					'A','B','C','D','E','F',};
			//定义一个临时容器
			char[] arr=new char[32];
			//定义一个操作数组的指针
			int pos=arr.length;
			//利用与低位最大值的方式取出低位,存到临时数组中
			while(num!=0){
			arr[--pos]=chs[num&diwei];//--pos倒著往临时容器里存
			num >>=yiwei;//无条件右移相应位数
			}
			//打印转换后的结果
			for( int x=pos;x<arr.length; x++)
			System.out.print(arr[x]);
			//换行
			System.out.println();
	}

}

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是Java算法实现十进制换为二进制八进制十六进制的代码示例: ```java public class NumberConversion { public static void main(String[] args) { int decimalNumber = 345; // 要换的十进制数 String binaryNumber = decimalToBinary(decimalNumber); String octalNumber = decimalToOctal(decimalNumber); String hexadecimalNumber = decimalToHexadecimal(decimalNumber); System.out.println("二进制数为:" + binaryNumber); System.out.println("八进制数为:" + octalNumber); System.out.println("十六进制数为:" + hexadecimalNumber); } // 十进制二进制 public static String decimalToBinary(int decimalNumber) { return Integer.toBinaryString(decimalNumber); } // 十进制八进制 public static String decimalToOctal(int decimalNumber) { return Integer.toOctalString(decimalNumber); } // 十进制十六进制 public static String decimalToHexadecimal(int decimalNumber) { return Integer.toHexString(decimalNumber); } } ``` 运行结果: ``` 二进制数为:101011001 八进制数为:531 十六进制数为:159 ``` 以上代码中的三个换方法都是使用Java内置的方法来实现,分别是`Integer.toBinaryString()`、`Integer.toOctalString()`和`Integer.toHexString()`。如果需要手动实现这些换算法,可以参考以下示例代码: ```java public class NumberConversion { public static void main(String[] args) { int decimalNumber = 345; // 要换的十进制数 String binaryNumber = decimalToBinary(decimalNumber); String octalNumber = decimalToOctal(decimalNumber); String hexadecimalNumber = decimalToHexadecimal(decimalNumber); System.out.println("二进制数为:" + binaryNumber); System.out.println("八进制数为:" + octalNumber); System.out.println("十六进制数为:" + hexadecimalNumber); } // 十进制二进制 public static String decimalToBinary(int decimalNumber) { StringBuilder binaryNumber = new StringBuilder(); while (decimalNumber > 0) { binaryNumber.insert(0, decimalNumber % 2); decimalNumber /= 2; } return binaryNumber.toString(); } // 十进制八进制 public static String decimalToOctal(int decimalNumber) { StringBuilder octalNumber = new StringBuilder(); while (decimalNumber > 0) { octalNumber.insert(0, decimalNumber % 8); decimalNumber /= 8; } return octalNumber.toString(); } // 十进制十六进制 public static String decimalToHexadecimal(int decimalNumber) { StringBuilder hexadecimalNumber = new StringBuilder(); while (decimalNumber > 0) { int remainder = decimalNumber % 16; if (remainder < 10) { hexadecimalNumber.insert(0, remainder); } else { hexadecimalNumber.insert(0, (char) ('A' + remainder - 10)); } decimalNumber /= 16; } return hexadecimalNumber.toString(); } } ``` 以上代码中的三个换方法都是使用基本算法来实现的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值