我需要把二进制数转换成两位数的十进制数。例如:

01111 becomes 15
00011 becomes 03

我不仅仅是想显示数字。我需要把每个数字放入一个int变量。假设我有两个int变量,leftnum和rightnum。
然后在第一个示例中,leftnum=1和rightnum=5。
在第二个示例中,leftnum=0和rightnum=3。
有两个限制使这有点困难。mod和/只能与2的幂一起使用。

最佳答案

int i = 0;
do {
    i ++;
} while (i * 10 <= originalInt);

int leftInt = i - 1; // e.g. for "originalInt = 40" -> "i = 5", so we must decrement 1
int rightInt = originalInt - leftInt * 10;

或者更紧凑,使用更少的变量:
int leftInt = 0;
do {leftInt ++;} while (leftInt * 10 <= originalInt);
int rightInt = originalInt - (-- leftInt) * 10;

关于c - 如何在C中将二进制数转换为两位十进制数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5276178/

10-11 19:02