我需要一个程序将二进制数转换为Java或C ++中的十进制数。
是否有人可以帮助我。
答案 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++ ;
}
请注意,这不会处理无效字符(二进制数字以外的任何字符)。