十进制转为二进制的JAVA代码

在网上搜索了十进制转为二进制的JAVA代码,没有满意的,自己写了一个,与大家一起分享。

 

/**
  * 十进制转化为二进制的内容堆栈,堆栈进入的顺序是由低到高的
  * @param dec dec为十进制
  * @author jerryLiu
  * @return
  */
 public static Stack tranDecimalToBinaryStack(int dec){
  int tmpDec = dec;
  if (dec < 0) tmpDec = -dec;
  Stack s = new Stack();
  while(tmpDec>2)
  {
     s.push(tmpDec&1); //输出最后一位
     tmpDec=tmpDec>>1;       //向右移一位
  }
  s.push(tmpDec&1);
  int first = tmpDec>>1;
  if(first > 0)s.push(first);
  return s;
 }
 
 /**
  * 将装满二进制的堆栈转为可以输出的
{@link StringBuilder}
  * @param binaryStack
  * @author jerryLiu
  * @return
  */
 public static StringBuilder tranBinaryStackToStrBuilder(Stack binaryStack){
  StringBuilder sb = new StringBuilder("");
  if (null == binaryStack) return sb;
       while(!binaryStack.isEmpty()){
        sb.append(binaryStack.pop());
  }
       return sb;
 }
 
 /**
  * 十进制转化为二进制的字符串
  * @param dec
  * @author jerryLiu
  * @return
  */
 public static String tranDecimalToBinaryStr(int dec){
  return tranBinaryStackToStrBuilder(tranDecimalToBinaryStack(dec)).toString();
 }

 

 public static void main(String[] args){

 

        for(int i = -10 ; i < 100; i ++ )
            System.out.println(tranDecimalToBinaryStr(i));

 

  }

 

 

补充:基础API不牢啊,我上面的代码负数还考虑不够

其实用Integer.toBinaryString就可以的。。。。。

比如 System.out.println(Integer.toBinaryString(-5));

就是11111111111111111111111111111011

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值