java中数值型对象的二进制表示 ——Thinking in Java学习笔记(四)

在java中,二进制数没有直接的常量表示法。但是,在使用十六进制或者八进制记数法的时候,使用二进制显示无疑会直观很多。通常在这种情况下,可以使用Integer或者LongtoBinaryString()方法来实现。

// 在数字前加0x修饰,表示十六进制记数
long l1 = 0xffff;
// 在数字前加0修饰,表示八进制记数
long l2 = 07777;
// 二进制显示
System.out.println(Long.toBinaryString(l1));
System.out.println(Long.toBinaryString(l2));
int l3 = 01111;
System.out.println(Integer.toBinaryString(l3));

但这样就产生了一个问题,IntegerLong都有toBinaryString()方法,那么短整型short类型的数据想转换成二进制显示怎么办呢?

这里就涉及到Integer.toBinaryString()方法的自带转型的问题了,将短整型short类型的数据传入Integer.toBinaryString()方法,会自动将改数据转换为int类型。

// short传入了Integer.toBinaryString方法时,会自动转换成int
short l4 = 01111;
System.out.println(Integer.toBinaryString(l4));
// 但这种改变只会在toBinaryString方法中有效,不会改变对象本身的数据类型
short l5 = l4;

但这种类型转换和parseInt()方法有区别,toBinaryString()方法的类型转换只在当前方法中有效,并且只对short类型有效,对long类型不能进行转换,而且不会改变对象自身的类型

你可能感兴趣的:(Java,学习笔记)