⑴ 用函數實現10進制轉化16進制
用函數實現10進制轉化16進制,這里沒有說明清楚數據的類型和函數的類型,下面假定是把一個int 類型的10進制轉化為16進制的字元串。
char* dec2hex(int x,char h[])
{int i=0,t;
do{
t=x%16;
h[i++]=t<10?t+'0':t+'A'-10;
x/=16;
}while(x);
h[i]='\0';
return h;
}
調用語句:
dec2hex(x,h);
puts(h);
或者:
printf("%s\n",dec2hex(x,h));
⑵ 求c語言將十進制數轉換為16進制的函數
c語言將十進制數轉換為16進制的函數:
#include<stdio.h>
main()
{
int u10;
char u16[10];
int w=0,a,b,i;
printf("請輸入一個數字-->");
scanf("%d",&u10);
if(u10==0)
{
u16[0]='0';
w++;
}
else
{
a=u10;
while(a)
{
b=a%16;
if(b<10)
{
u16[w]='0'+b;
}
else
{
u16[w]='A'+b-10;
}
a=a/16;
w++;
}
}
printf("
");
printf("%d(10)轉換為16進制數字為:",u10);
for(i=w-1;i>=0;i--)
{
printf("%c",u16[i]);
}
printf("
");
}
(2)腳本如何實現10進制轉16進制擴展閱讀:
十進制數轉換為二進制數方法
十進制數轉換為二進制數時,由於整數和小數的轉換方法不同,所以先將十進制數的整數部分和小數部分分別轉換後,再加以合並。
1. 十進制整數轉換為二進制整數 十進制整數轉換為二進制整數採用"除2取余,逆序排列"法。具體做法是:用2去除十進制整數,可以得到一個商和余數;再用2去除商,又會得到一個商和余數,如此進行,直到商為零時為止,然後把先得到的余數作為二進制數的低位有效位,後得到的余數作為二進制數的高位有效位,依次排列起來。
2.十進制小數轉換為二進制小數
十進制小數轉換成二進制小數採用"乘2取整,順序排列"法。具體做法是:用2乘十進制小數,可以得到積,將積的整數部分取出,再用2乘餘下的小數部分,又得到一個積,再將積的整數部分取出,如此進行,直到積中的小數部分為零,或者達到所要求的精度為止。
然後把取出的整數部分按順序排列起來,先取的整數作為二進制小數的高位有效位,後取的整數作為低位有效位。
⑶ 在C語言中如何將10進制轉換成16進制
根據10進制轉換為16進制的規則,編寫C語言程序將10進制數轉換為16進制數。
具體實現方法可參考如下程序:
#include<stdio.h>
voidmain()
{
inti,x;//x表示欲轉換的10進制數
intdata[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(" ");
}
⑷ 怎樣將10進制轉換成16進制
手寫轉換
1
把十進制數除以16,保留余數部分。得到余數以後就不要再往下除得小數了。
2
寫下余數部分,在右下角標上16。比如剩下的是11,寫成b,右下方寫16。查查如何理解十六進制數來了解一下十六進制所用的符號。
3
把之前的整數商再除以16,得到余數部分,然後再在這個余數右下角標上16
4
重復以上步驟,直到得到一個小於16的商。每一次都把余數右下方標上16,注意我們也需要寫下最後得到的商(即小於16的商)
,並轉為十六進制。
5
把余數和最後的商從左到右按順序寫下,最右是商。得到的十六進制就是這個數,從右往左讀。比如讀作2f34,實際上的值是43f2。
⑸ 如何用c語言實現10進制轉換成16進制
#include<stdio.h>
#defineLEN100
char*decimal2Others(intvalue,char*string,intradix){/*十進制數轉任意進制*/
/*除基數取余法:十進制數不斷除以進制基數直至為零,每次相除取得余數之逆序即為轉換結果*/
intremain,i=1,j=0;
inttemp[LEN];
while(value){/*除基數取余*/
remain=value%radix;
value=value/radix;
temp[i++]=remain;
}
while(--i){/*逆序存儲*/
if(temp[i]>9)
string[j++]=temp[i]-10+'a';/*十以上進制處理*/
else
string[j++]=temp[i]+'0';
}
string[j]='