c語言給十進制整數
㈠ c語言整數轉換成十進制的整數
以前寫的,程序在win-tc和Dev-c++下調試通過。
/*
任意進制轉換
語法:conversion(char s1[],char s2[],char t[]);
s[]:轉換前的數字
s2[]:轉換後的數字
d1:原進制數
d2:需要轉換到的進制數
高於9的位數用大寫'A'~'Z'表示,2~16位進制通過驗證
*/
#include <stdio.h>
#include <conio.h>
void conversion(char s[],char s2[],int d1,int d2)
{int i,j;
long num,t;
char c;
num=0;
for (i=0;s[i]!='\0';i++)
{
if (s[i]<='9'&&s[i]>='0') t=s[i]-'0';
else if (s[i]>='A'&&s[i]<='F') t=s[i]-'A'+10;
else if (s[i]>='a'&&s[i]<='f') t=s[i]-'a'+10;
else
{printf("Input error!! Press any key to quit!"); return; }
num=num*d1+t;
}
i=0;
while(1)
{
t=num%d2;
if (t<=9) s2[i]=t+'0'; else s2[i]=t+'A'-10;
num/=d2;
i++;
if (num==0) break;
}
/* 這里字元串再倒序排列 */
for (j=0;j<i/2;j++)
{c=s2[j];s2[j]=s2[i-1-j];s2[i-1-j]=c;}
s2[i]='\0';
}
main()
{
char s[20],result[100];
int a,b;
scanf("%s",&s);/* 要轉換的數字 */
scanf("%d%d",&a,&b);/* a進制-〉b進制 */
conversion(s,result,a,b);
printf("%s",result);
getch();
}
㈡ c語言編程 將10進制整數轉化成任意進制整數
將任意進制的整數化成十進制整數 一、目的和要求 1.應用循環進行冪運算。 2.掌握其它進制的數化成十進制數的計算方法。 3.轉換的結果正確。 二、實驗內容 1.鍵盤上任意輸入一個任意進制的整數及它的進制。 2.根據其它進制的數化成十進制數的計算方法,編寫程序將其轉換成十進 制的數。 三、演算法 設輸入的數為:a0a1a2
㈢ C語言調用函數編寫把十進制整數n轉換成十六進制怎麼編程
思路:十進制整數轉換為十六進制整數採用"除16取余,逆序排列"法。
具體做法是:用16整除十進制整數,可以得到一個商和余數;再用16去除商,又會得到一個商和余數,如此進行,直到商為0時為止,然後把先得到的余數作為十六進制數的低位有效位,後得到的余數作為十六進制數的高位有效位,依次排列起來。
參考代碼:
#include"stdio.h"
intmain()
{
intnum,a[100],i=0,m=0;
charhex[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
scanf("%d",&num);
while(num>0)
{
a[i++]=num%16;
num=num/16;
}
printf("轉化為十六進制的數為:");
for(i=i-1;i>=0;i--)//倒序輸出
{
m=a[i];
printf("%c",hex[m]);
}
printf(" ");
}
/*
運行結果:
17
轉化為十六進制的數為:11
*/
㈣ c語言,輸出十進制整數格式符為%d,其他的呢比如2進制
%d,十進制,decimal。
%o,八進制,octal。
%x或%X,十六進制,hexadecimal。以0x或0X開頭,與a的大小寫對應。
沒有直接與二進制對應的格式。
㈤ 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進制保存的,,建立個字元數組,直接把內存讀出來就行了,
㈥ C語言編程:輸入一個十進制整數(int 型),以十六進制形式分別輸出該數高端2位元組和低端2位元組對應的值。
代碼如下:
#include<stdio.h>
#include<stdlib.h>
intmain()
{
inti=1;
printf("請輸入一個整數:");
scanf_s("%d",&i);
printf("%04x,%04x ",((i>>16)&0x0000ffff),i&0x0000ffff);
system("pause");
return0;
}
運行結果:
㈦ 用C語言編程,輸入一個十進制正整數,輸出其對應的十六進制整數。
#include<stdio.h>
int main()
{
int a,*p;
p=&a;
scanf("%d",p);
printf("%x ",*p);
return 0;
}
(7)c語言給十進制整數擴展閱讀:
十進制數轉換為二進制數時,由於整數和小數的轉換方法不同,所以先將十進制數的整數部分和小數部分分別轉換後,再加以合並。
十進制整數轉換為二進制整數採用"除2取余,逆序排列"法。具體做法是:用2去除十進制整數,可以得到一個商和余數;再用2去除商,又會得到一個商和余數,如此進行,直到商為零時為止,然後把先得到的余數作為二進制數的低位有效位,後得到的余數作為二進制數的高位有效位,依次排列起來。
㈧ C語言:鍵盤輸入一個十進制整數,輸出其對應的二進制、三進制、四進制……十六進制數值。
#defineN"0123456789ABCDEF"
#include<stdio.h>
voidchange(intx,intn,char*p){
chartmp[100];//臨時存放轉換數
inti,total=0;
while(x){
tmp[total++]=N[x%n];
x/=n;
}
for(i=total-1;i>=0;i--){
p[total-1-i]=tmp[i];
}
if(total==0){
p[0]='0';
p[1]=0;
}
else
p[total-1-i]=0;
}
intmain()
{
chars[100];//用於存放轉換的進制的數
inti,x;
printf("把一個數轉換成234...16進制數 ");
scanf("%d",&x);
for(i=2;i<=16;i++){
change(x,i,s);
printf("轉換成%d進制是:%s ",i,s);
}
}