繁体   English   中英

使用for循环将小数转换为二进制?

[英]Coverting a decimal to binary using for loops?

我正在尝试编写一个将十进制转换为二进制并将十进制转换为八进制的程序。 我可以从十进制转换为二进制,但是不能从十进制转换为八进制。

import java.util.*;
public class RadixConversion 
{
public static void main(String[] args) 
{
Scanner scan = new Scanner(System.in);    
System.out.println("Enter a number: ");
int number = scan.nextInt();
System.out.println("Convert to base: ");
String letter = scan.next();

if (letter.equals("b")||letter.equals("B"))
    {
        int remainder = 0;
        for (int i = 1; number > 0; i++) 
        {
        number /= 2;
        remainder = number % 2;
        System.out.print(remainder);
        }
    }


    else if (letter.equals ("o") || letter.equals ("O"))
    {
        int remainder = 0;
        for (int i = 1; number >0 ; i++) 
        {
        number /= 8;
        remainder = number % 8;
        System.out.print(remainder);
        }
    }
 }        
 }

这是我学习的方式有点复杂。 您必须找到适合该数字的8的最大幂,查看该数字有多少次,然后以8的下一个最低幂重复该过程。随行打印每个数字。

看上去都没有人产生正确的值,而0和1不会那么明显。 您要删除第一个数字并以相反的顺序打印数字(一个人的数字首先打印)

    int remainder = 0;
    String result = "";
    for (int i = 1; number >0 ; i++) 
    {
      remainder = number % 8;
      result = remainder + result;  // remainder first puts the digits in the right order
      number /= 8;
    }
    System.out.print(result);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM