首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

请问:java中显示二进制的有关问题

2012-02-22 
请教:java中显示二进制的问题在java中如何把整数或浮点数据用二进制的形式显示出来有没有相关的方法? [解

请教:java中显示二进制的问题
在java中如何把整数或浮点数据用二进制的形式显示出来
有没有相关的方法?


[解决办法]
Integer.toBinaryString(int i);
Double.doubleToRawLongBits(double value)
[解决办法]
Double.toHexString(double d);
然后再自己解析成二进制吧
[解决办法]
十六进制转换成十进制:Integer.valueOf( "FFFF ",16).toString()

[解决办法]
public static void bin(byte b) {
char[] charBits = toCharBits(b, 8);
outputWholeBits(charBits);
}

public static void bin(char b) {
char[] charBits = toCharBits(b, 16);
outputWholeBits(charBits);
}

public static void bin(short b) {
char[] charBits = toCharBits(b, 16);
outputWholeBits(charBits);
}

public static void bin(int b) {
char[] charBits = toCharBits(b, 32);
outputWholeBits(charBits);
}

public static void bin(long b) {
char[] charBits = toCharBits(b, 64);
outputWholeBits(charBits);
}

public static void bin(float a) {
char[] charBits = toCharBits(Float.floatToIntBits(a), 32);
outputFloatBits(charBits);
}

public static void bin(double a) {
char[] charBits = toCharBits(Double.doubleToLongBits(a), 64);
outputDoubleBits(charBits);
}

//转二进制数组
static char[] toCharBits(long num, int size) {
char[] charBits = new char[size];
for (int i = size-1; i > = 0; --i) {
charBits[i] = (num & 1) == 0 ? '0 ' : '1 ';
num > > > = 1;
}
return charBits;
}

//整数打印,4位一逗号
static void outputWholeBits(char[] charBits){
for(int i = 0; i < charBits.length; i++){
System.out.print(charBits[i]);
if((i % 4 == 3)&&(i != charBits.length-1)) {
System.out.print( ", ");
}
}
System.out.println();
}

//float打印(符号位1, 指数位8, 尾数位23)
static void outputFloatBits(char[] charBits){
for(int i = 0; i < charBits.length; i++){
System.out.print(charBits[i]);
if((i == 0)||(i == 8)) {
System.out.print( " ");
}
}
System.out.println();
}

//double打印(符号位1, 指数位11, 尾数位52)
static void outputDoubleBits(char[] charBits){
for(int i = 0; i < charBits.length; i++){
System.out.print(charBits[i]);
if((i == 0)||(i == 11)) {
System.out.print( " ");
}
}
System.out.println();
}

热点排行