将二进制数转换为十进制数
我需要一个程序将二进制数转换为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++ ; }
请注意,这不会处理无效字符(二进制数字以外的任何字符)。