将十进制数12.5转换为八进制数c语言代码
时间: 2023-07-26 16:40:26 浏览: 127
由于 12.5 是一个带有小数点的数,因此我们需要将其整数部分和小数部分分别转换为八进制数。以下是 C 语言代码实现:
```c
#include <stdio.h>
int main() {
int integer = 12;
float fraction = 0.5;
int octal_integer[100], octal_fraction[100];
int i = 0, j;
// Convert integer part to octal
while(integer != 0) {
octal_integer[i] = integer % 8;
integer /= 8;
++i;
}
printf("Octal number (integer part) = ");
for(j = i - 1; j >= 0; --j) {
printf("%d", octal_integer[j]);
}
i = 0;
// Convert fraction part to octal
while(i < 5) {
fraction *= 8;
octal_fraction[i] = (int)fraction;
fraction -= (int)fraction;
++i;
}
printf(".%d%d%d%d%d", octal_fraction[0], octal_fraction[1], octal_fraction[2], octal_fraction[3], octal_fraction[4]);
return 0;
}
```
此代码首先将整数部分 12 转换为八进制数,并输出结果。然后将小数部分 0.5 乘以 8,取整数部分 4,再将剩余的小数部分 0.0 乘以 8,取整数部分 0,以此类推,直到得到 5 位八进制小数。最后将整数部分和小数部分拼接起来,输出结果。注意,小数部分的八进制数不一定是有限位数的,因此这里假定小数部分最多有 5 位八进制数。
阅读全文