int remainder;
char Hex[8];
int quotient, power;
remainder = (original_value*-1)-1;
for (int k = len; k > 0 ; k--)
{
if (sign == 1)
{
power = pow(16, k-1);
quotient = 15 - (remainder/power);
remainder = remainder%power;
if (quotient < 10)
Hex[len - k] = (int)quotient;
else if (quotient == 10)
Hex[len - k] = 'A';
else if (quotient == 11)
Hex[len - k] = 'B';
else if (quotient == 12)
Hex[len - k] = 'C';
else if (quotient == 13)
Hex[len - k] = 'D';
else if (quotient == 14)
Hex[len - k] = 'E';
else if (quotient == 15)
Hex[len - k] = 'F';
}
}
for(int k = 0; k < len; k++)
printf("%s", Hex[k]);
我没有包括其余的代码,因为这一点希望可以解释我要实现的目标。
我的目标是打印出用户输入的任何数字的Base 16表示形式,但是我需要将此数据保存到数组中以备后用,如何在char数组中打印数据(最后两行) ,以使字符像在我的for循环中一样显示?
最佳答案
试试这个希望这会工作并享受
printf("%s", Hex[k]); ==> printf("%c", Hex[k]);
而pow提升2的幂实际上是次优的。您应该使用班次(<
关于c - 如何从c中的数组打印char类型?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46135307/