gpt4 book ai didi

java - 二进制到十进制 Java 转换器

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:39:18 24 4
gpt4 key购买 nike

我正在创建一个代码,允许您将二进制数转换为十进制数,反之亦然。我创建了一个将十进制转换为二进制的代码,但无法解决如何将二进制转换为十进制的问题。

我的十进制转二进制代码如下:

import java.util.*;
public class decimalToBinaryTest
{
public static void main (String [] args)
{

int n;
Scanner in = new Scanner(System.in);

System.out.println("Enter a positive interger");
n=in.nextInt();

if(n < 0)
{
System.out.println("Not a positive interger");
}

else
{
System.out.print("Convert to binary is: ");
binaryform(n);
}
}


private static Object binaryform(int number)
{

int remainder;

if(number <= 1)
{
System.out.print(number);
return " ";
}


remainder= number % 2;
binaryform(number >> 1);
System.out.print(remainder);
{
return " ";
}
}
}

对二进制到十进制代码如何工作的解释也会有所帮助。

我尝试了最低位 digit*1 然后次位 *1*2 然后 *1*2*2 但无法使其正常工作。

谢谢@korhner,我在数组和 if 语句中使用了你的数字系统。

这是我的工作代码:

import java.util.*;
public class binaryToDecimalConvertor
{
public static void main (String [] args)
{
int [] positionNumsArr= {1,2,4,8,16,32,64,128};
int[] numberSplit = new int [8];
Scanner scanNum = new Scanner(System.in);
int count1=0;
int decimalValue=0;


System.out.println("Please enter a positive binary number.(Only 1s and 0s)");
int number = scanNum.nextInt();

while (number > 0)
{
numberSplit[count1]=( number % 10);
if(numberSplit[count1]!=1 && numberSplit[count1] !=0)
{
System.out.println("Was not made of only \"1\" or \"0\" The program will now restart");
main(null);
}
count1++;
number = number / 10;
}

for(int count2 = 0;count2<8;count2++)
{
if(numberSplit[count2]==1)
{
decimalValue=decimalValue+positionNumsArr[count2];
}
}

System.out.print(decimalValue);

}
}

最佳答案

示例:

00000100

0 - 1
0 - 2
1 - 4
0 - 8
0 - 16
0 - 32
0 - 64
0 - 128

将位 1 = 4 的值求和

祝你好运!

关于java - 二进制到十进制 Java 转换器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21797437/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com