當前位置:首頁 » 編程語言 » c語言給十進制整數

c語言給十進制整數

發布時間: 2022-08-10 21:55:57

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);
}
}

熱點內容
有線投屏安卓手機如何設置 發布:2024-05-02 05:43:26 瀏覽:894
搶誠信紅包用什麼伺服器好 發布:2024-05-02 05:37:44 瀏覽:102
淘寶客源碼程序 發布:2024-05-02 05:34:46 瀏覽:812
大淘客cms源碼 發布:2024-05-02 05:33:12 瀏覽:445
matlab新建文件夾 發布:2024-05-02 05:14:19 瀏覽:717
看加密相冊 發布:2024-05-02 04:45:53 瀏覽:663
資源存儲在哪 發布:2024-05-02 04:23:28 瀏覽:169
如何猜對方qq密碼後幾位 發布:2024-05-02 03:46:59 瀏覽:403
php最後出現字元串 發布:2024-05-02 03:46:31 瀏覽:492
android源碼debug 發布:2024-05-02 03:41:13 瀏覽:437