如果不使用#include <string.h> 呢,简单改改第一个代码就好了
时间: 2024-09-18 21:01:31 浏览: 32
如果你不想使用 `<string.h>` 包含文件,并且仅关注原始的十进制转八进制的代码,你可以直接在程序中手动创建一个字符数组用于存储十六进制值。这里是一个简化版本的代码,只保留八进制转换部分:
```c
#include <stdio.h>
void decimalToOctal(unsigned char num) {
static char octal_digits[] = {'0', '1', '2', '3', '4', '5', '6', '7'};
int index = 0;
while(num > 0) {
octal_digits[index++] = num % 8 + '0'; // 加上 '0' 转换成字符
num /= 8;
}
for(int i = index - 1; i >= 0; i--) {
printf("%c", octal_digits[i]); // 从最低位开始输出
}
}
int main()
{
unsigned char integer_dec = 236;
unsigned char dividend = integer_dec;
int i = 0;
while(dividend > 0){
decimalToOctal(dividend);
printf("-"); // 输出分隔符
dividend = dividend / 2;
i++;
}
printf("\n");
return 0;
}
```
在这个简化版的代码中,我们不再需要十六进制字符数组,而是使用了一个 `octal_digits` 数组来存储八进制表示。同样,每步结束时会输出一个 `-` 分隔符。
阅读全文