1樓:
他那個好麻煩的轉換。大體思路是這樣的,就拿一個十進位制數如26,不停地對16求餘,得到的餘數大於9,則按a(10)b(11)c(12)d(13)e(14)f(15)這樣排列儲存,小於10就是123456789這樣,他們都被儲存在字數陣列中如我的n16,最後倒著輸出就是轉換後的16進位制字串了。
#include
#include
main()
n16[i]='\0';
printf("轉換為十六進位制數:%s\n",strrev(n16));
return 0;}
c語言程式設計,輸入十進位制數輸出十六進位制和八進位制
2樓:園林植物手冊
可以通過下面的公式解決
#include
const int maxn = 128;
const int index8 = 8;
const int index16 =16;
int main()
while(m)
int i;
for(i = cot8 - 1; i >= 0; i--)printf("%d", array8[i]);
puts("");
for(i = cot16 - 1; i >= 0; i--)擴充套件資料:
十進位制轉十六進位制的具體方法:對於整數部分,用被除數反覆除以16,除第一次外,每次除以16均取前一次商的整數部分作被除數並依次記下每次的餘數。另外,所得到的商的最後一位餘數是所求二進位制數的最高位。
對於小數部分,採用連續乘以基數16,並依次取出的整數部分,直至結果的小數部分為0為止。故該法稱「乘基取整法」。
10進位制數轉換成十六進位制數,這是一個連續除以16的過程:把要轉換的數,除以16,得到商和餘數,將商繼續除以16,直到商為0。最後將所有餘數倒序排列,得到數就是轉換結果。
3樓:匿名使用者
可以格式化輸出。
#include
int main()
4樓:匿名使用者
#include
void showbit(int n)
printf("%d",n%2);
}void showoct(int n)
printf("%d",n%8);
}void showhex(int n)
printf("%d",n%16);
}int main()
幫忙看一下這個c語言問題:輸入一個十進位制整數,將其轉換成十六進位制數,並輸出轉換後的結果。
5樓:貌似風輕
最簡單的,不涉及演算法的作法就是用printf的輸出格式 %x 輸出16進位制
%x 輸出小寫的回a、答b、c、d、e、f %x輸出大寫的a、b、c、d、e、f
#include
int main()
6樓:匿名使用者
#include
#include
int main()
7樓:匿名使用者
printf("%d", num)
c語言編寫程式 ,以字元形式輸入一個十六進位制數,將其變換成一個十進位制整數後輸出
8樓:匿名使用者
#include
#include
#include
int main()
printf("轉化屬
為十進位制後:%ld\n",res); return 0;}
c語言題目 以字元形式輸入一個十六進位制數,將其變換成一個十進位制整數後輸出
9樓:匿名使用者
#include
#include
#include
int main(void)
times *= 16;
}printf("%s = %d\n\n", ch, digital);
}return 0;}
10樓:匿名使用者
#include
#include
#define n 8
int main()
count = strlen(data);
for (int i = 0; i < count; ++i)else if (data[i] >= 65 && data[i] <= 70)//a-f字元
else if (data[i] >= 97 && data[i] <= 102)//a-f字元
else//非法字元
for (int j = 1; j < count-i; ++j)sum += num;
}if (1 == is_error)
else}
用c語言編寫函式,將輸入的十進位制數轉換成十六進位制數並輸出
11樓:
//#include "stdafx.h"//if the vc++6.0, with this line.
#include "stdio.h"
int main(void)
}else printf("0");
printf("\n");
return 0;}
12樓:匿名使用者
簡單作法:用printf()函式格式輸出完成#include
void main()
超出整數範圍的,需專要用字串實屬現,**較為複雜,有興趣可搜一下大數運算的c程式**
用c語言將十進位制數轉成十六進位制數, 用按位方法
13樓:黑馬程式設計師
#include
#include
void f(int n)
}int main()
c語言 寫一個函式 輸入一個十六進位制數 輸出相應的十進位制
14樓:萬能導師
#包括< stdio, h >
h#包括< math.h >
# include < string。h >
intmain()
char[10]。
void轉換(char[]a);
printf(「輸入十六進位制數:」);
(一);輸入一個十六進位制數
轉換(a);
返回0;
void轉換(char[]a)
intn,i,num=0;
n=strlen(a);
對於(i = n - 1;i > = 0;我)
如果(a < i > > = '0' & a < i > < = '9')
num + = (a < i > - '0') * pow (16, n - 1 - i);
否則(a < i > > = 'a' && a < i > < = 'z')
num + =(10 +(《我》 - a)) *戰俘(16 n - 1 - i);
否則(a < i > > = 'a' && a < i > < = 'z')
num + =(10 +(《我》 - a)) *戰俘(16 n - 1 - i);
printf(「將小數轉換為:」);
printf("%d",num);
15樓:匿名使用者
1、一個數的每一位都有一個權值,例如十進位制數2039,它可以表示為:2*10^3+0*10^2+3*10^1+9*10^0。那麼任何進位制的數都一樣,例如16進位制數8a30e,它就是8*16^4+10*16^3+3*16^2+0*16^1+14*16^0=566030,算出來的值就是這個數對應的十進位制數。
又例如k進位制數abcdef(這是一個6位數),它就是a*k^5+b*k^4+c*k^3+d*k^2+e*k^1+f*k^0。
2、例程:
#include
int main()
int shiliu(char *x)
return (n);}
16樓:匿名使用者
首先解釋你的函式部分 exchange(char a):
語句 if((a[i]>='0')&&(a[i]<='9')) n=n*16+a[i]-'0';
因為16進位制的整數基數位為0,1,2***,9,a,b,c,d,e,f總共16個字元,從10-15為字元型(字元部分不區分大小寫)。因此要進行數制轉換就首先要將字元轉換成對應的資料,即將字元後自帶的 \0字元去掉。
flag和flag1的作用是標記資料轉換是否正常進行
17樓:匿名使用者
將你以字元形式輸入的16進位制數逐位換算為10進位制,其實它的功能就是實現下面這個表
0 -》0
1 -》1.。
。a -》10
b -》11.。
。f -》15
18樓:小花
/*寫一個函式,輸入一個十六進位制數,輸出相應的十進位制數。*/#include
#include
#include
int main()
void turn(char n)
else if(n[i]>='a'&&n[i]<='f')else if(n[i]>='a'&&n[i]<='f')}printf("%d\n",s);}
19樓:鷹弈
flag,flag1是標誌變數,主要用於控制迴圈,比如說
if(flag)a=100;
flag=1,條件為真,繼續執行內的語句,在執行a=100;
flag=0,條件為假,不執行{}內的語句,直接執行a=100;
a[i]表示0,1,...,e(e),f(f)的acsii碼,a[i]='a(a)',a[i]-'a(a)'的意思是將char轉變為int,舉個例子:
a[i]=『a』,字元a的acsii碼是65,那麼a[i]-『a』+10=10(int);
a[i]=『b』,字元b的acsii碼是66,那麼a[i]-『a』+10=11(int);
...a[i]=『0』,那麼a[i]-'0'=0(int);
a[i]='1',那麼a[i]-'0'=1(int);
...if((a[i]>='0')&&(a[i]<='9')) n=n*16+a[i]-'0';
if((a[i]>='a')&&(a[i]<='f')) n=n*16+a[i]-'a'+10;
if((a[i]>='a')&&(a[i]<='f')) n=n*16+a[i]-'a'+10;
這就是十六轉十的一種方法,你記住就行了,不用過多的追究。
20樓:匿名使用者
#include
#define n1 1000
void main()
else if(flag==1)}}
}int exchange(char a)return(n);}
用c語言程式設計:請把輸入的十進位制長整數以十六進位制的形式輸出 15
21樓:匿名使用者
#include
main()
22樓:匿名使用者
#include
intmain()
23樓:
dword a = 10;
printf("%x",a);
c語言十進位制轉二進位制,C語言十進位制轉二進位制
十進位制轉二進位制可以使用庫函式itoa。itoa函式原型 char itoa int value,char string,int radix 功能 將任意型別的數字轉換為字串。在中與之有相反功能的函式是atoi。nt value 被轉換的整數,char string 轉換後儲存的字元陣列,int ...
求十進位制數58 65的二進位制數,十進位制數58的二進位制數是多少?
首先,十進位制整數部分與小數部分的轉換時不同的。1 對於整數部分來說,採用 除2取餘,逆序排列 法。具體做法是 用2整除十進位制整數,可以得到一個商和餘數 再用2去除商,又會得到一個商和餘數,如此進行,直到商為0時為止,然後把先得到的餘數作為二進位制數的低位有效位,後得到的餘數作為二進位制數的高位有...
c語言十六進位制字串轉十進位制,C語言十六進位制字串轉十進位制
include include void main while result 0 for j cindex 1 j 0 j 翻轉後存放在b中 b index c j b index 0 加上串結束符puts b 輸出 測試結果 c語言中如何將16進位制字串轉化成10進位制整數?include inc...