将char整数表示转换为二进制

时间:2015-09-30 17:42:09

标签: c assembly binary

我有一个由数组5组成的字符数组3.该数组用于表示数字53.将这三个字符数转换为二进制等效字符的方法应该是什么?我在C中实现它,稍后它将需要在程序集中重写。我寻求的解决方案应该是纯粹的低工作,没有任何帮助库。

我基本上坚持一个想法,分别转换5和4(通过映射5和4到他们的ascii等价物)。然而,这个想法肯定不会奏效。我有另一个想法,通过右移字节4将char'5'转换为int 5.与4.相乘然后将5乘以10并加4,然后使用除以2的算法来求余数并组成二进制数。

1 个答案:

答案 0 :(得分:1)

在C:

int asciToInteger(char *c)
{
    int result = 0;
    while (*c)
    {
        result *= 10;
        result += (*c - '0');
        c++;
    }
    return result;
}

假设输入有效。

您可以通过使用某些开关进行编译来获得汇编语言版本的先机,这些开关将输出为...汇编语言!例如,在GNU C中:gcc -S -c ascii2int.c