关于java里进制的转换问题

本文提供了一套完整的Java方法用于将各种基本数据类型转换为二进制字符串,并展示了如何根据不同数据类型的位数来定制输出格式。包括整型、浮点型等数据类型的二进制表示方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于java里进制的转换问题

收藏个文章:http://caisu.blog.sohu.com/95569313.html

 

 

 

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();
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值