开发者社区> 问答> 正文

如何将十进制数转换为二进制

public class Binar{
public static void main(String[] args){
    int num = 7;
    long Binary = cBtD(num);
System.out.printf("%d numri decimal = %d binar" , num, Binary);
}
public static long cBtD(int num){
    long BinaryNumber = 0;
    int  i = 0;
    long reminder;
    while(num > 0){
        reminder = num % 2;
        num /= 2;
        ++i;
    }
  for (int j = i - 1; j >= 0; j--) {
        System.out.print(BinaryNumber[j]); 
  }
    return BinaryNumber;
}}

而且我有这个错误,它说“array required, but long found”和“ System.out.print(BinaryNumber [j]);”


问题来源:stackoverflow

展开
收起
七天一失眠 2020-03-21 10:35:45 1032 0
1 条回答
写回答
取消 提交回答
  • 做一个优秀的阿里云志愿者

    发生该错误是因为您定义BinaryNumber的类型为'long',并且希望将其用作数组。 我对其进行了一些更改,请尝试:

    public class Binar {
    
        public static void main(String[] args) {
            int num = 7;
            int[] binaryArray = cBtD(num);
            String numbers = "";
            for (int aBinaryArray : binaryArray)
                numbers += aBinaryArray;
    
            System.out.printf("%d numri decimal = %d binar" , num, Integer.parseInt(numbers));
        }
    
        private static int[] cBtD(int num){
            int i = 0;
            int temp[] = new int[7];
            int binaryNumber[];
            while (num > 0) {
                temp[i++] = num % 2;
                num /= 2;
            }
            binaryNumber = new int[i];
            int k = 0;
            for (int j = i - 1; j >= 0; j--) {
                binaryNumber[k++] = temp[j];
            }
            return binaryNumber;
        }
    }
    

    或者,您可以简单地使用以下方法将十进制转换为二进制:

    Integer.toBinaryString();
    

    或这个

    Integer.toString(n,2);
    

    答案来源:stackoverflow

    2020-03-21 10:44:01
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载