C语言--进制转换
·
十进制与八进制的转换
1.格式控制(直接输出)
-
格式控制包括格式说明和格式字符。
-
格式说明由“%”和格式字符组成,如%d、%f等。它的作用是将输出的数据转换为指定的格式输出。格式说明总是由“%”字符开始的。不同类型的数据用不同的格式字符。
-
%d为整型输出;%o以八进制数形式输出整数。
#include<stdio.h>
int main(void)
{
int n;
scanf("%d",&n);
printf("%o",n);
return 0;
}
2.除k取余法(循环)
- 通过利用循环来实现除k取余法,是比较常见的一种进制转换的方式。
#include<stdio.h>
#include<math.h>
int main(void)
{
int n,temp,sum=0,i=0;
scanf("%d",&n);
while(n)
{
temp = n%8;
n = n/8;
sum += temp*pow(10,i);
i++;
}
printf("%d",sum);
return 0;
}
3.字符串版
- 利用字符串的特性来实现进制转换。
#include<stdio.h>
#include<string.h>
#define N 100
void change (char str[N],int n);
int main(void)
{
char str[N];
int n;
scanf("%d",&n);
change(str,n);
puts(str);
return 0;
}
void change (char str[N],int n)
{
int i=0;
while(n)
{
str[i]=n%8+'0';
i++;
n/=8;
}
str[i]='\0';
strrev(str);
}
4.指针法
- 结合循环、字符串、指针来实现进制转换。
#include<stdio.h>
#include<string.h>
#define N 100
void change (char str[N],int n);
int main(void)
{
char str[N];
int n;
scanf("%d",&n);
change(str,n);
puts(str);
return 0;
}
void change (char str[N],int n)
{
int i=0,d;
while(n)
{
d = n%8;
str[i]="0123456789abcdef"[d];
i++;
n/=8;
}
str[i]='\0';
strrev(str);
}
更多推荐
已为社区贡献2条内容
所有评论(0)