【发布时间】:2010-09-25 21:42:12
【问题描述】:
我正在编写一个将二进制字符串转换为十进制的程序。在我真正开始使用这种方法之前,我想验证我的输出。我有以下代码:
int get_val()
{
int sum =0;
for(int num_bits = size; num_bits>0; num_bits--)
{
printf("String sub %i is %i\n", num_bits, int(bin[num_bits]));
}
}
当我输入一个 16 个零的字符串时,我得到以下输出:
String sub 16 is 24
String sub 15 is 0
String sub 14 is 0
String sub 13 is 0
String sub 12 is 23
String sub 11 is 0
String sub 10 is 0
String sub 9 is 0
String sub 8 is 22
String sub 7 is 0
String sub 6 is 0
String sub 5 is 0
String sub 4 is 21
String sub 3 is 0
String sub 2 is 0
String sub 1 is 0
如果我输入全零,为什么我会赌得到不同的值?
编辑:bin 是“0000000000000000”
【问题讨论】:
-
您似乎遗漏了一些代码。
-
bin数组是关于什么的? -
能否请您发布其余代码,尤其是 bin[] 是什么?
-
如果要将二进制字符串转换为int,为什么不使用:
(int)strtol(bit_string, NULL, 2);?除非这是家庭作业(或类似的东西),否则编写自己的例程似乎毫无意义。 -
您的编辑没有帮助。向我们展示您的
bin是如何声明和初始化的。size是什么?