思路:十進位制整數轉換為十六進位制整數採用"除16取餘,逆序排列"法。
具體做法是:用16整除十進位制整數,可以得到一個商和餘數;再用16去除商,又會得到一個商和餘數,如此進行,直到商為0時為止,然後把先得到的餘數作為十六進位制數的低位有效位,後得到的餘數作為十六進位制數的高位有效位,依次排列起來。
參考程式碼:
#include "stdio.h"
int main()
{
int num,a[100],i=0,m=0;
char hex[16]={"0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"};
scanf("%d",&num);
while(num>0)
a[i++]=num%16;
num=num/16;
}
printf("轉化為十六進位制的數為:");
for(i=i-1;i>=0;i--)//倒序輸出
m=a[i];
printf("%c",hex[m]);
printf("\n");
/*
執行結果:
17
轉化為十六進位制的數為:11
*/
思路:十進位制整數轉換為十六進位制整數採用"除16取餘,逆序排列"法。
具體做法是:用16整除十進位制整數,可以得到一個商和餘數;再用16去除商,又會得到一個商和餘數,如此進行,直到商為0時為止,然後把先得到的餘數作為十六進位制數的低位有效位,後得到的餘數作為十六進位制數的高位有效位,依次排列起來。
參考程式碼:
#include "stdio.h"
int main()
{
int num,a[100],i=0,m=0;
char hex[16]={"0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"};
scanf("%d",&num);
while(num>0)
{
a[i++]=num%16;
num=num/16;
}
printf("轉化為十六進位制的數為:");
for(i=i-1;i>=0;i--)//倒序輸出
{
m=a[i];
printf("%c",hex[m]);
}
printf("\n");
}
/*
執行結果:
17
轉化為十六進位制的數為:11
*/