开发者社区 问答 正文

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

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 1063 分享
分享
版权
举报
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 举报
    赞同 评论

    评论

    全部评论 (0)

    登录后可评论
问答地址: