十进制转八进制 转二进制 java实现

代码
	private static void myToOctalString(int a) {
		String str = "";
		while (true) {
			str = a % 8 + str;
			a = a / 8;
			if (a == 0)
				break;
		}
		System.out.println(str);
	}
}

分析

之前我还发了个 比较麻烦的,这个相比而言就简单得多,需要注意的地方
1.int型的数+字符串 会变为字符串
2.10进制转其他进制其实就是先取余拿到值后放在输出的最左边。也就是str = a%8 + str 。(当然16进制等10以上的数是需要替换的)
3.Unreachable code 的意思是没有用到的代码,那么说明代码前面已经跳出。或者死循环了。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值