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/

10-13 06:18