二进制转八进制公式计算机,二进制转八进制算法(二进制与八进制的互相转换方法)...

二进制与八进制的互相转换和二进制与的转换类似,区别在于需要操作的是三位一组而不是四位。表2-2列出了二进制与八进制的等效表示。

二进制转八进制算法

为了把换算为二进制,将每一个八进制数字替换成表2-2中对应的三位。例如,八进制123换算成结果就是001010011:

b4971db67fa43598a8daf6e72b156fa7.png

表2-2 二进制/八进制换算表

34154e75f80b2971f5a8925cf88f2e8d.png

为了将一个换算为八进制,只需将二进制串划分成每三个位一组(如果需要的话,在前面补零),然后查表2-2,将三位一组的位串替换为相应的字即可。

如果需要将八进制数换算为,只需将八进制数换算为二进制,然后再换算为十六进制即可。

八进制化为十进制:

例:将八进制数12转换成

9c724136cafb83e9f2c631d573130b7c.png

八进制化为二进制:

规则:按照顺序,每1位改写成等值的3位,次序不变。

例: (17.36)8 = (001 111 .011 110)2 = (1111.01111)2

八进制化为

先将八进制化为二进制,再将二进制化为十六进制。

例:(712)8 = (1110 0101 0)2 = (1CA)16

转换为八进制

二进制化为八进制:

部份从最低有效位开始,以3位一组,最高有效位不足3位时以0补齐,每一组均可转换成一个八进制的值,转换完毕就是八进制的整数。

小数部份从最高有效位开始,以3位一组,最低有效位不足3位时以0补齐,每一组均可转换成一个八进制的值,转换完毕就是八进制的小数。

例:(11001111.01111)2 = (011 001 111.011 110)2 = (317.36)8

十六进制化为八进制:

先用1化4方法,将化为二进制;再用3并1方法,将二进制化为8制。

例: (1CA)16 = (111001010)2 = (712)8

说明:小数点前的高位零和小数点后的低位零可以去除。

化八进制

方法1:采用除8取余法。

例:将115转化为

8| 115…… 3

8| 14 …… 6

8| 1 …… 1

结果:(115)10 = (163)8

方法2:先采用十进制化二进制的方法,再将二进制数化为八进制数

例:(115)10 = (1110011)2 = (163)8

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

余额充值