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

我需要一个程序将二进制数转换为Java或C ++中的十进制数。

是否有人可以帮助我。

Java的:

String binary = "110010101011"; int decimal = Integer.parseInt(binary, 2); 

C ++:

 #include  const char* binary = "110010101011"; int decimal = strtol(binary, NULL, 2); 

这是Integer.parseInt的Javadoc页面 ,这是strotol的联机帮助页面 。

使用二进制扩展。 例如1101 1001是:

(1 x 2 ^ 7)+(1 x 2 ^ 6)+(1 x 2 ^ 4)+(1 x 2 ^ 3)+(1 x 2 ^ 0)

这相当于:

小数点数217。

这是算法:

1.)提示用户输入二进制数。

2.)将数字存储在一个数组中。 第一个元素,即anArray [0]应该包含值1,第二个元素应该具有值0。 。 。

3.)实现for循环以进行计算。

在C ++中,有一些库函数“strtol”,“strtoull”等,它们带有一个字符串和用于转换的基础。 如果您需要超过32/64位,则可以使用仅受可用内存限制的GMP库。

是的,我知道怎么做。

使用:

 String input0 = "1010"; String input1 = "10"; int number0 = Integer.parseInt(input0, 2); int number1 = Integer.parseInt(input1, 2); int sum = number0 + number1;` 

好的Cfunctionitoa

算法(在c / c ++中):

 const char* binary = "110010101011"; int decimal = 0; while ( *binary ) { decimal*=2; decimal+=*binary-'0'; binary++ ; } 

请注意,这不会处理无效字符(二进制数字以外的任何字符)。