所以我正在完成一项任务,我必须执行不同的操作,但不使用标准的算术运算。部分分配是将用户输入转换为二进制形式的整数到标准可读格式。
因此,如果用户输入0111,我必须返回7.
我的问题是,如何将输入拆分为单独的值,然后将它们存储在数组中?我不能使用标准操作数,但我确实有为加法,减法和乘法编写的函数。
所以我想要做的是将整数的每个值设置为一个数组,然后将其反转,并在while循环中通过将给定的0或1乘以相应的2的幂来转换值然后添加一切。
答案 0 :(得分:0)
将其扫描为字符串。它有一个很好的优点:已经是一个数组:
char input[33];
scanf("%s",input);
给你一个字符数组。它们不是整数,可能就是你想要的。您可以使用字符算法将其转换为一个整数数组,一次一个字符:
array[i] = input[i] - '0';
当input [i]为0时,您必须停止,即字符串的结尾。如果首先需要低位,则可以反转数组。