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

时间:2010-01-22 05:55:19

标签: java c++

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

是否有人可以帮助我。

6 个答案:

答案 0 :(得分:12)

爪哇:

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

C ++:

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

以下是Javadoc page for Integer.parseInt,此处为manpage for strotol

答案 1 :(得分:1)

使用二进制扩展。例如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循环来进行计算。

答案 2 :(得分:0)

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

答案 3 :(得分:0)

是的,我知道怎么做。

使用:

String input0 = "1010";
String input1 = "10";

int number0 = Integer.parseInt(input0, 2);
int number1 = Integer.parseInt(input1, 2);

int sum = number0 + number1;`

答案 4 :(得分:0)

良好的C函数itoa

答案 5 :(得分:-1)

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

const char* binary = "110010101011";
int decimal = 0;

while ( *binary ) 
{
    decimal*=2;
    decimal+=*binary-'0';
    binary++ ;
 }

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