求助!C语言用指针函数实现十进制转,十六进制,八进制,二进制

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求助!C语言用指针函数实现十进制转,十六进制,八进制,二进制相关的知识,希望对你有一定的参考价值。

RT
C语言用指针函数怎么实现十进制转,十六进制,八进制,二进制
自己写的一段,但出错!
望指导!
本人新手!

#include<stdio.h>
#include<string.h>
void trans_to_hex(char *p, int m)

int r;
for(;m!=0;p++)

r=m%16;
if(r<10)
*p=r+48;
else *p=r+55;
m=m/16;

*p='\0';


void trans_to_octal(char *p, int m)

int r;
for(;m!=0;p++)

r=m%8;
*p=r+48;
m=m/8;

*p='\0';


void trans_to_binary(char *p, int m)

int r;
for(;m!=0;p++)

r=m%2;
*p=r+48;
m=m/2;

*p='\0';

void main()

int i, n;
char a[5];
printf("请输入一个十进制整数(位数不超过5位): ");
scanf("%d",&n);
trans_to_hex(a,n);
for(i=strlen(a)-1;i>=0;i++)
putchar(a[i]);
trans_to_octal(a,n);
for(i=strlen(a)-1;i>=0;i++)
putchar(a[i]);
trans_to_binary(a,n);
for(i=strlen(a)-1;i>=0;i++)
putchar(a[i]);

#include"stdio.h"
#define MAX 100
typedef struct s

int yushu[MAX];
int top;
SqStack;

SqStack *s;
int n,jinzhi,m;
void transform();
void output(SqStack *s);
int main()

printf("计算机0904 16号 林夏飞\n****************\n");
s=(SqStack*)malloc(sizeof(SqStack));
s->top = -1;

printf("输入要转换的十进制数和要转成的进制: ");
scanf("%d %d",&n,&jinzhi);
transform(n,jinzhi,s);
output(s);
getch();
return 0;


void transform(int n, int m,SqStack *s)


while(n)

s->yushu[++s->top]=n%m;
n/=m;


void output(SqStack *s)

printf("%d的%d进制形式是: ",n,jinzhi);
if(s->top==-1)
printf("0");
else
while(s->top!=-1)

printf("%d",s->yushu[s->top]);
s->top--;

参考技术A #include <iostream.h>

int result[100]=0;
int index=0;

void zhuan(int n,int jin)

while(n>0)

result[index++]=n%jin;
n=n/jin;



void main()

zhuan(10,2);
for(int i=index-1;i>=0;i--)
cout<<result[i];
参考技术B 整型常量
整型常量有3种表示方式:
①十进制整数。例如,123、一456、0。
②八进制整数。以0开头的整数是八进制数。例如,0123表示8进制数123<8),等于十进制数83。
③十六进制整数。以ox或0x开头的整数是十六进制数。例如,0x1.23或0Xl 23表示十六进制数123…),等于十进制数291。
如果在整型常量后面加上字母u或u,则表示无符号整数(unsigned int)。例如,123U或123u是unsigned int型的。如果在整型常量后面加上一个字母L或l,则表示长整数(10ngint)。例如,123[.或123l是long int型的。
你的串号我已经记下,采纳后我会帮你制作

C语言中的二进制十进制八进制十六进制都是怎么转化的?

参考技术A /**
程序功能:求二进制,十进制,八进制
创建人:蒲宇林
创建日期:2007年8月13日
**/
#include
<stdio.h>
void
two();
void
eight();
void
sixteen();
/**主函数**/
void
main()

int
select;
do

printf("0
-
退出,1
-
十进制转二进制,2
-
十进制转八进制,3
-
十进制转十六进制");
scanf("%d",&select);
switch(select)

case
1
:
two();
break;
//十进制转二进制
case
2
:
eight();
break;
//十进制转八进制
case
3
:
sixteen();
break;
//十进制转十六进制
default
:
printf("您的输入有误,请重新输入!");
break;

if(select
==
0)

break;

while(1);

void
two()

int
num,
i;
int
arr[20];
printf("\n请输入一个十进制数:");
scanf("%d",&num);
for(
i
=
0
;
1
;
i++)
//转换为二进制并存入数组

arr[i]
=
num
%
2;
num
=
num
/
2;
if(num
==
0)

break;


printf("转换为二进制:");
//打印
for(;
i
>=
0
;
i--
)

printf("%d",arr[i]);

printf("\n");

void
eight()

int
num,
i;
int
arr[20];
printf("\n请输入一个十进制数:");
scanf("%d",&num);
for(
i
=
0
;
1
;
i++)
//转换为八进制并存入数组

arr[i]
=
num
%
8;
num
=
num
/
8;
if(num
==
0)

break;


printf("转换为八进制:");
//打印
for(;
i
>=
0
;
i--
)

printf("%d",arr[i]);

printf("\n");

void
sixteen()

int
num,
i;
int
arr[20];
printf("\n请输入一个十进制数:");
scanf("%d",&num);
for(
i
=
0
;
1
;
i++)
//转换为二进制并存入数组

arr[i]
=
num
%
16;
num
=
num
/
16;
if(num
==
0)

break;


printf("转换为十六进制:");
//打印
for(;
i
>=
0
;
i--
)

switch(arr[i])

case
10
:
printf("A");
break;
case
11
:
printf("B");
break;
case
12
:
printf("C");
break;
case
13
:
printf("D");
break;
case
14
:
printf("E");
break;
case
15
:
printf("F");
break;
default
:
printf("%d",arr[i]);


printf("\n");

以上是关于求助!C语言用指针函数实现十进制转,十六进制,八进制,二进制的主要内容,如果未能解决你的问题,请参考以下文章

3. 从键盘上输入一个八进制数,利用指针将其转换为十进制数并输出 C语言 很急

C语言中的二进制十进制八进制十六进制都是怎么转化的?

c语言 十六进制转换为二进制 用函数做

怎样用C语言将字符转化成十六进制整数

c语言编一函数将一十进制整数转换为十六进制整数,谢谢

c语言16进制转换为10进制数的函数是啥?