我有一个二进制数,我需要打印它作为十六进制数。(这是一个更大的项目中的功能)
我做了这个函数,但是我只能反向打印它。这是函数:
int printOctalToHex (unsigned int octalNum) {
unsigned int binaryNum;
int temp;
int i = 1;
binaryNum = octalToBinary(octalNum);
while (1) {
temp = (binaryNum % 10000);
binaryNum = binaryNum / 10000;
if (temp == 0) {
printf("0");
}
if (temp == 1) {
printf("1");
}
if (temp == 10) {
printf("2");
}
if (temp == 11) {
printf("3");
}
if (temp == 100) {
printf("4");
}
if (temp == 101) {
printf("5");
}
if (temp == 110) {
printf("6");
}
if (temp == 111) {
printf("7");
}
if (temp == 1000) {
printf("8");
}
if (temp ==1001) {
printf("9");
}
if (temp == 1010) {
printf("A");
}
if (temp == 1011) {
printf("B");
}
if (temp == 1100) {
printf("C");
}
if (temp == 1101) {
printf("D");
}
if (temp == 1110) {
printf("E");
}
if (temp == 1111) {
printf("F");
}
if (binaryNum < 1) {
printf("\n");
break;
}
i++;
}
}
有人能帮我吗?TY!
而如果有人有更好的方法来做这件事我会很乐意看到的,因为我的路很长。
1条答案
按热度按时间1tuwyuhd1#
您只需要两个函数,其中一个是递归函数: