我有一个由数组5组成的字符数组3.该数组用于表示数字53.将这三个字符数转换为二进制等效字符的方法应该是什么?我在C中实现它,稍后它将需要在程序集中重写。我寻求的解决方案应该是纯粹的低工作,没有任何帮助库。
我基本上坚持一个想法,分别转换5和4(通过映射5和4到他们的ascii等价物)。然而,这个想法肯定不会奏效。我有另一个想法,通过右移字节4将char'5'转换为int 5.与4.相乘然后将5乘以10并加4,然后使用除以2的算法来求余数并组成二进制数。
答案 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
。