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