當前位置:首頁 » 編程語言 » c語言十進制轉任意進制函數
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言十進制轉任意進制函數

發布時間: 2022-07-19 10:52:37

『壹』 c語言,十進制轉任意進制怎麼做

#include<stdio.h>
intmain()
{
inta,to,i=0;
chararray[64]="";
scanf("%d%d",&a,&to);
while(a!=0)
{
array[i]=a%to;
if(array[i]>=10)
array[i]=array[i]-10+'A';
else
array[i]+=48;
a/=to;
i++;
}
i--;
while(i>=0)
{
printf("%c",array[i]);
i--;
}
printf(" ");
return0;
}

『貳』 用C語言設計一個程序:要求能把十進制轉換為任意進制(2,8,16)

#include<stdio.h>
void dectobin(unsigned int number);
void dectooct(unsigned int number);
void dectohex(unsigned int number);
void convert(unsigned int number,int n);
void main()
{
unsigned int number;
int n;
printf("請輸入帶轉換的十進制數:\n");
scanf("%u",&number);
while(getchar()!='\n')
continue;
printf("想轉換為多少進制?(2、8或者16?)\n");
scanf("%d",&n);
convert(number,n);
}
void convert(unsigned int number,int n)
{//函數功能,把number從十進制轉換為n進制數,n為2,8或者16
if(n!=2&&n!=8&&n!=16)
printf("此程序只能轉換為2,8或者16進制的數值");
else if(n==2)
dectobin(number);
else if(n==8)
dectooct(number);
else
dectohex(number);

}
void dectobin(unsigned int number)
{//函數功能,把十進制數number轉換為二進制數
int a[20];
int i=0;
int j;
while(number)
{
a[i]=number%2;
number=number/2;
i++;
}
for(j=i-1;j>=0;j--)
printf("%d",a[j]);
}
void dectooct(unsigned int number)
{//函數功能,把十進制數number轉換為八進制數
int a[20];
int i=0;
int j;
while(number)
{
a[i]=number%8;
number=number/8;
i++;
}
printf("0"); //在數字前列印一個八進制前綴0
for(j=i-1;j>=0;j--)
printf("%d",a[j]);
}
void dectohex(unsigned int number)
{//函數功能,把十進制數number轉換為十六進制數
char a[20];
int i=0;
int j;
while(number)
{
a[i]=number%16;
if(a[i]>9)
switch(a[i])
{
case 10:a[i]='a';break;
case 11:a[i]='b';break;
case 12:a[i]='c';break;
case 13:a[i]='d';break;
case 14:a[i]='e';break;
case 15:a[i]='f';break;
}
number=number/16;
i++;
}
printf("0x"); //在數字前列印一個八進制前綴0x
for(j=i-1;j>=0;j--)
printf("%c",a[j]);
}

『叄』 c語言,求將一個十進制的數轉化為一個任意進制的數。求解決我的程序的問題,謝啦。

你好!問題解決如下代碼所示^-^
#include<stdio.h>
#include<conio.h>
#include<malloc.h>
struct node
{
int data;
struct node*link;
};
struct node*top=NULL;
void jinzuanhuan(int,int);
void display();
void main()
{
int a,b;
printf("請輸入你想要轉換的數(十進制):");
scanf("%d",&a);
for(;;)
{
printf("要轉換的進制(大於1的整數):");
scanf("%d",&b);
if(b>1)//不存在1進制的數,數據的進制都大於1
break;
}
jinzuanhuan(a,b);
display();
}
void jinzuanhuan(int n,int m )
{
struct node*temp;
temp=(struct node*)malloc(sizeof(struct node));
if(temp==NULL)
printf("\n棧已滿.");
while(n!=0)
{
temp->data=n%m;
temp->link=top;
top=temp;
n=n/m;
temp=(struct node*)malloc(sizeof(struct node));//這里還要新開辟新的內存空間,存儲進制數的又一位
if(temp==NULL)
printf("\n棧已滿.");
}
free(temp);//清除多開辟的空間
}
void display()
{
struct node*top1;
int item;
top1=top;
if(top1==NULL)//這里不能top1=NULL,這是賦值運算
return;
while(top1!=NULL)
{
item=top1->data;
printf("%d ",item);
top1=top1->link;
}
printf("\n");
}

『肆』 C語言:編寫一個函數,其功能是將一個十進制正整數轉換成任意進制整數,並輸出轉換結果

#include "stdio.h" #include "stdlib.h" main() { int n,x=0,a[100]; printf("請輸入轉換的數和進制:\n"); scanf("%d",&n); while(n){ a[x++]=n%2; n/=2; } --x; while(x>=0) printf("%d",a[x--]); printf("\n"); system("pause"); } 再送你一個進制轉換的 問題:把十進制數轉換為其它進制 #include "stdio.h" #include "stdlib.h" main() { int n,k; char *str="0123456789ABCDEF"; printf("請輸入轉換的數和進制:\n"); scanf("%d%d",&n,&k); int px=0,a[128]; while(n){ a[px++]=n%k; n/=k; } --px; while(px>=0) printf("%c",str[a[px--]]); printf("\n"); system("pause"); }

『伍』 C語言 將十進制整數化成任意進制的數

不好用,,寫的這么復雜..還不如這樣
簡單又明了:
main()
{
int
a;
char
biao[100];
printf("請輸入您要轉化的十進制數!!~\n");
scanf("%d",&a);
printf("您的十進制數%d經過轉化為二進制數為%s\n",a,itoa(a,biao,2));
printf("您的十進制數%d經過轉化為八進制數為%o\n",a,a);
printf("您的十進制數%d經過轉化為十六進制數為%X\n",a,a);
}
以上經過調試可以運行.
因為
數字在內存里是以2進制保存的,,建立個字元數組,直接把內存讀出來就行了,