在java中如何把整数或浮点数据用二进制的形式显示出来
有没有相关的方法?
有没有相关的方法?
解决方案 »
- Component的setBackGround方法无效果
- 关于JDBC;ResultSet 接口
- JSpinner如何设置文本框为不可编辑
- 根据表中的时间字段查询最近一个星期的记录
- [分享]JAVA I/O,2 Edition翻译计划,对JAVA I/O不清楚的朋友要关注哦:)
- 菜鸟问题,构造函数的调用?
- 有一个ResultSet,怎么把它传给一个需要RowSet参数的函数
- HttpURLConnection的disconnect()方法?
- 赋值和初始化问题
- 求Java eclipse高手点拨小弟一个Java eclipse的运行bug,如何破?
- netbeans中的问题java.awt.EventQueue.invokeLater(new Runnable())求解
- 求助:四柱汉诺塔求解算法的设计与实现
Double.doubleToRawLongBits(double value)
然后再自己解析成二进制吧
java里有直接的方法把十六进制转成二进制么?或者把十六进制转换成十进制的
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();
}
FileInputStream file = new FileInputStream("d:/a.txt");
int b = file.read();
while(b!=-1) {
System.out.print(Integer.toBinaryString(b)+" ");
b = file.read();
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
FileInputStream file = new FileInputStream("d:/a.txt");
int b = file.read();
String s = null;
while(b!=-1) {
s = String.format("%1$8s", Integer.toBinaryString(b)).replaceAll(" ", "0");
System.out.printf(s+" ");
b = file.read();
}
} catch (Exception e) {
e.printStackTrace();
}