English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
所有分類

請問我要如何宣告一個變數num接受使用者輸入ff,aa,等16進位表示法呢?
ex void 16to10 ( ???? )

2006-07-25 19:03:29 · 3 個解答 · 發問者 SAYC 5 in 電腦與網際網路 程式設計

3 個解答

下面輸入與輸出結果的變數必須宣告為「無號整數」
無號整數的顯示用「%u」來表示,無號整數最大值只到 (FFFFFFFF)h ,8 個 F,假如你要求更大數值,必須自行寫陣列演算法。

//Power by Microsoft Visual Studio 2005
//可以使用 Dev-C++ 編譯此程式
#include
#include
#include
#include
int main(int argc, char *argv[])
{
//=====START=====//
unsigned int hextoint(char *S);
unsigned int nNUM;
char hexString[]="ffffffff";
nNUM=hextoint(hexString);
printf("%u\n",nNUM);
//=====END=====//
system("PAUSE");
return 0;
}
unsigned int hextoint(char *S){//Covert HEX strings to integer
char Hex[17]="0123456789ABCDEF";
unsigned int retInteger=0,nTemp,i,j;
strupr(S);
for(i=0;i for(j=0,nTemp=1;j if(*(S+i)==*(Hex+j)){
nTemp*=j;
break;
}
}
retInteger+=(nTemp*=(int)pow(16,strlen(S)-i-1));
}
return retInteger;
}

2006-07-25 20:24:56 · answer #1 · answered by Big_John-tw 7 · 0 0

也對..反正我只是要寫計算機程式..讓使用者能轉換就好了

2006-07-26 08:42:05 · answer #2 · answered by SAYC 5 · 0 0

偷懶的寫法,可以不用理。
#include
void main()
{
int a;
printf("輸入十六進位值:");
scanf("%x",&a);
printf("%x 的十進位值為:%d\n",a,a);
}

2006-07-26 06:12:51 · answer #3 · answered by Almond 6 · 0 0

fedest.com, questions and answers