C語言求題解 把輸入的十進位制數以十六進位制數輸出

2022-11-03 08:05:14 字數 5802 閱讀 2563

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...