java中的二进制、八进制、十六进制

二进制(binary)

//二进制,0b/0B打头,赋值时也不需要引号
int Bin_0b = 0b11;
int Bin_0B = 0B11;
//直接在system中以十进制输出,其会根据int前缀判断是几进制
System.out.println(Bin_0b);
System.out.println(Bin_0B);

//若想将此二进制以二进制数的形式转换出来时,使用Integer.toBinaryString(Bin_0b )方法,因为Bin_0b的二进制仅有两位,若直接输出,int是32位,会有问题,所以才需要使用本方法来转换
String SCID = Integer.toBinaryString(SCIDInt);
SCID = SupplementWithParameter(SCID, 4, "0");
System.out.println("SCID:"+SCID);

//因int数据类型只有32位,当二进制位数过长,就需要用到long类型(注意,long类型要以L结尾)。
long RSV = 0B10101010101010101010101010101010101010L;
System.out.println(RSV);

输出结果为3

八进制(Octal)

//八进制数据以0打头,赋值时也不需要引号
int Oct = 0144;
//直接在system中以十进制输出,其会根据int前缀判断是几进制,所以十进制数据在打印输出时,不要在int数值前加0,会被误以为八进制,从而输出错误。
System.out.println(Oct);

输出结果为100

int变量不要在数值前加0,会被误以为八进制

十进制(decimalism)

//十进制数据不需要前缀,赋值时也不需要引号
int Dec = 144;
//直接在system中输出十进制,其会根据int前缀判断是几进制,所以十进制数据在打印输出时,不要在int数值前加0,会被误以为八进制,从而输出错误。与前面的八进制比较。
System.out.println(Dec);

输出结果为144

十六进制(00H)(hexadecimal)

Java中的int十六进制,0xC10xc1是相等的。

//十六进制数据以0x打头,赋值时也不需要引号
int Hex = 0xf;
//直接在system中输出十进制。
System.out.println(Hex);//输出结果为“15”

int表示十六进制数时,需要偶数个长度

//使用int表示十六进制时,需要偶数长度
int writeByte = 0xAAAAA;//写五个十六进制时报错,提示需要偶数长度,提示“hexBinary needs to be even-length”
int writeByte = 0xAAAAAA;//写六个十六进制

转换为String,还可以同步转换进制

String x = Integer.toBinaryString(0x0);:转换为二进制字符串。

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
好的,以下是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(); } } ``` 以上代码的三个转换方法都是使用基本算法来实现的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值