二进制到整数,需要有关此方法的建议。

时间:2014-09-23 01:14:50

标签: c

所以我正在完成一项任务,我必须执行不同的操作,但不使用标准的算术运算。部分分配是将用户输入转换为二进制形式的整数到标准可读格式。

因此,如果用户输入0111,我必须返回7.

我的问题是,如何将输入拆分为单独的值,然后将它们存储在数组中?我不能使用标准操作数,但我确实有为加法,减法和乘法编写的函数。

所以我想要做的是将整数的每个值设置为一个数组,然后将其反转,并在while循环中通过将给定的0或1乘以相应的2的幂来转换值然后添加一切。

1 个答案:

答案 0 :(得分:0)

将其扫描为字符串。它有一个很好的优点:已经是一个数组:

char  input[33];
scanf("%s",input);

给你一个字符数组。它们不是整数,可能就是你想要的。您可以使用字符算法将其转换为一个整数数组,一次一个字符:

array[i] = input[i] - '0';

当input [i]为0时,您必须停止,即字符串的结尾。如果首先需要低位,则可以反转数组。