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

c語言實現十進制

發布時間: 2022-10-21 01:08:25

c語言如何實現十六進制轉換成十進制

C語言實現十六進制轉換成十進制如下:

例如將十六進制數字 9FA8C 轉換成十進制

9FA8C = 9×164 + 15×163 + 10×162 + 8×161 + 12×160 = 653964(十進制)。

從右往左看,第1位的位權為 160=1,第2位的位權為 161=16,第3位的位權為 162=256,第4位的位權為 163=4096,第5位的位權為 164=65536 …… 第n位的位權就為 16n-1。

將各個位的數字乘以位權,然後再相加,就得到了十進制形式。

十六進制數的第0位的權值為16的0次方,第1位的權值為16的1次方,第2位的權值為16的2次方。

所以,在第N(N從0開始)位上,如果是是數 X (X 大於等於0,並且X小於等於 15,即:F)表示的大小為 X * 16的N次方。

再例如:十六進制:EA7 = 14×162 + 10×161 + 7×160 = 3751(十進制)。



(1)c語言實現十進制擴展閱讀:

C語言10進制轉16進制

把十進制的數不停除以16的余數按從右到左的順序排起來就是16進制,例如:55/16=0餘5例如100 100/16=6餘4 6/16餘6,所以就是64,再例如1000 1000/16=62餘8 62/16=3餘12 3/16餘3所以結果是3C8 //。

對於整數部分,用被除數反復除以2,除第一次外,每次除以2均取前一次商的整數部分作被除數並依次記下每次的余數。另外,所得到的商的最後一位余數是所求二進制數的最高位。

對於小數部分,採用連續乘以基數2,並依次取出的整數部分,直至結果的小數部分為0為止。

② 如何使用C語言編寫二進制轉換為十進制的程序

將二進制轉成十進制,按權值展開求和即可。

可以通過以下代碼解決:

#include <stdio.h>

#include <stdlib.h>

int main()

{

char a[17];

gets(a);

int len,i,sum=0,m,j;

len=strlen(a);

if(len<=16)

{

for(i=0;i<len;i++)

{

m=1;

if(a[i]=='1')

{

for(j=1;j<=len-i-1;j++)

m*=2;

sum+=m;

}

}

printf("%d",sum);

}

return 0;

}

(2)c語言實現十進制擴展閱讀

我們常用的進制包括:二進制、八進制、十進制與十六進制,它們之間區別在於數運算時是逢幾進一位。比如二進制是逢2進一位,十進制也就是我們常用的0-9是逢10進一位。

十進制轉二進制:十進制數除2取余法,即十進制數除2,余數為權位上的數,得到的商值繼續除2,依此步驟繼續向下運算直到商為0為止。

八進制轉二進制:八進制數通過除2取余法,得到二進制數,對每個八進制為3個二進制,不足時在最左邊補零。

十六進制轉二進制:十六進制數通過除2取余法,得到二進制數,對每個十六進制為4個二進制,不足時在最左邊補零。

負數的進制轉換稍微有些不同。

先把負數寫為其補碼形式(在此不議),然後再根據二進制轉換其它進制的方法進行。

例:要求把-9轉換為八進制形式。則有:

-9的補碼為1111 1111 1111 0111。從後往前三位一劃,不足三位的加0

111---->7

110---->6

111---->7

111---->7

111---->7

001---->1

然後我們將結果按從下往上的順序書寫就是:177767,那麼177767就是十進制數-9的八進制形式。

其實轉化成任意進制都是一樣的。

③ C語言如何將一個數字組成的字元串轉變成十進制數

辦法很多,提供三種供參考。

一、直接使用庫函數atoi將數字字元串轉換成十進制整數。代碼如下:

#include"stdio.h"
#include"stdlib.h"//調用庫函數atoi要包含這個文件
intmain(intargc,char*argv[]){
chara[]="478167831";
printf("%d ",atoi(a));//直接調用atoi將a轉換為十進制整數
return0;
}

二、用庫函數sscanf直接將數組中的數字字元串讀入十進制整型變數。代碼如下:

#include"stdio.h"
intmain(intargc,char*argv[]){
chara[]="478167831";
intx;
sscanf(a,"%d",&x);//調用sscanf,讀入時自動轉換為int型並由%d控制以十進制賦給變數x
printf("%d ",x);//輸出
return0;
}

三、自行編寫轉換代碼:

#include"stdio.h"
intmain(intargc,char*argv[]){
chara[]="478167831";
intx,i;
for(x=i=0;a[i];(x*=10)+=a[i++]-'0');//字元與數字的關系是"字元值-'0'==同名數字"
printf("%d ",x);//輸出
return0;
}

上述三代碼的輸出結果如下圖:

④ 用C語言編寫二進制轉換十進制的程序。

1、為了完成進制的轉換,在主函數中聲明了個函數Sum,主要用於將二進制的每一位轉換為十進制後的數相加,返回值就是相加後的和。另外定義了一個數組array[8],用於存放輸入的八位二進制數。

⑤ 如何用C語言將一個十六進制數字轉換為十進制

需要准備的材料分別有:電腦、C語言編譯器。

1、首先,打開C語言編譯器,新建一個初始.cpp文件,例如:test.cpp。

⑥ c語言十進制轉換

十進制的任意轉換
#include
#include
int
main()
{
int
a,b,c,n
=
0,m[40];
printf("請輸入你想算得數
=__\b\b");
scanf
("%d",&a);
printf("
請輸入你想算的進制
=__\b\b");
scanf
("%d",&b);
while
(a
!=
0)
{
n
++
;
c
=
a
%
b;
m[n]
=
c;
a
=
a
/
b;
}
for
(a
=
n;
a
>=
1;a--)
printf
("%d",m[a]);
return
0;
}

⑦ 用C語言編程實現10進制數值轉16進制字元串

根據10
進制
轉換為16進制的
規則
,編寫
C語言程序
將10進制數轉換為16進制數。
具體實現方法可參考如下程序:
#include<stdio.h>void
main(){
int
i,
x;
//
x表示欲轉換的10進制數
int
data[10],
index=0;
//
data數組存放轉換後的16進制數,index表示
下標
scanf("%d",
&x);
//
接受欲轉換的10進制數
for(i=0;
i<10;
i++)
//
對數組data進行初始賦值操作
data[i]
=
0;
printf("%d對應的16進制為:",
x);
//
反復相除取余,並將
余數
存放在data數組中
while(x>0)
{
data[index]
=
x%16;
x
=
x/16;
index++;
}
//
逆序輸出data數組中的元素,即為10進制數對應的16進制數
for(i=index-1;
i>=0;
i--)
printf("%d",
data[i]);
printf("\n");
}

⑧ C語言用1個10進制數表示字元串,並輸出該值怎麼做

要把一個十進制形式的整數數字字元串,轉換為一個十進制整數,可以用以下的辦法:
char s[]="12345678";
int i,n=0;
for(i=0;s[i];i++)
n=n*10+s[i]-'0';
printf("%d",n);
運行這段代碼後可以輸出:
12345678