⑴ c語言中將0123轉換成十進制數是
#include<stdio.h>
int main()
{
int a=0123;
printf("%d",a);
}
前面加0的數是八進制數
%d輸出的是十進制數
所以這樣就可以了.
⑵ 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語言如何實現十六進制轉換成十進制
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(十進制)。
(3)c語言中013轉為10進制擴展閱讀:
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語言中,將字元轉換為十進制的程序
字元轉為10進制 用sscanf或者用atoi均可
以字元串中, 本身為10進制字元串為例
用sscanf程序如下:
#include<stdio.h>
intmain()
{
chars[20];
inti;
scanf("%s",s);
sscanf(s,"%d",&i);
printf("%d ",i);
return0;
}
⑸ 在C語言中,如何用數組來實現2進制轉換為10進制
問題不是很清楚,是一個'1' 和『0』 的char[] 作為input,然後一個int 作為結果的話,可以這樣寫:
比如進來時「10100010001」這樣一個用char[] 表示的string的話
int convert(char * arg)
{
int result = 0;
//先找長度
int length = strlen(arg);
//用pos來找正確的bit position, 因為 index 0 對應的是bit pos, 1 對應 pos -1, etc
int pos = length - 1;
for (int i = 0; i<length; i++)
{
result + = (int)(arg[i] - '0')<<(pos - i);
}
return result;
}
如果想程序跑的快點可以加一個 #pragma omp parallel for (+:result) firstprivate(i) 在for循環前面一行, 當然如果題主不需要就當沒看到這個啦, xD
希望解答了你的問題
⑹ c語言中如何將16進制字元串轉化成10進制整數
1、輸入字元串
3、反轉字元串,並賦給字元串數組A
2、循環檢測數組A,依次檢測1每個字元
5、判斷當前檢測的字元,如果屬於ABCDEF,則依次把ABCDEF
轉換為11....16,否則不做任何操作
6、累加,當前循環次數的16次方乘以當前字元的數值大小。
7、輸出總累加值就是10進制整數
⑺ 問一個C語言中的換算問題
0x開頭表示,該數據是16進制數據。16進制轉化為10進制的方法如下:
例1.把0x13轉化為10進制。
3*(16的0次方)+1*(16的1次方)= 3*1+1*16 = 19
例2.0x1234轉為為10進制。
4*(16的0次方)+3*(16的1次方)+2*(16的2次方)+1*(16的3次方)= 4660
其它轉化依此類推,記住,就是對應的位i乘以16的i-1次方相加即可!
⑻ 如何用C語言將一個十六進制數字轉換為十進制
需要准備的材料分別有:電腦、C語言編譯器。
1、首先,打開C語言編譯器,新建一個初始.cpp文件,例如:test.cpp。