查看單個文章
舊 2014-10-29, 10:54 PM   #5 (permalink)
getter
管理員
 
getter 的頭像
榮譽勳章
UID - 6433
在線等級: 級別:96 | 在線時長:9733小時 | 升級還需:64小時級別:96 | 在線時長:9733小時 | 升級還需:64小時級別:96 | 在線時長:9733小時 | 升級還需:64小時級別:96 | 在線時長:9733小時 | 升級還需:64小時級別:96 | 在線時長:9733小時 | 升級還需:64小時級別:96 | 在線時長:9733小時 | 升級還需:64小時
註冊日期: 2002-12-08
住址: 天線星球
文章: 8157
精華: 0
現金: 19955 金幣
資產: 765391 金幣
預設

以下是迪西自己的寫法

PHP 語法:
#include<stdio.h>  
#include<stdlib.h>  


// 副程式:輸入1~15 dec 轉 hex, if 公式
int HEX_ABC_if (int DECbool Caps)   
{
 if (
DEC 10// 數值 < 10 的
   
{ return 48+DEC; }   // 使用 ACSII 碼轉換為"文字格式" 的數字
 
else          // 數值 > 10 的轉換      
   
{
    if (
Caps)  // HEX 字母大小寫變換  
      
{ return 55+DEC; } // 使用 ACSII 碼轉換成大寫字母 
    
else        
      { return 
87+DEC; } // 使用 ACSII 碼轉換成小寫字母 
   
}       
 return 
0;
}



// 主程式 
int main(int argcchar *argv[]) 
{
 
int Index// 則位紀錄資料時,位置移位數。 
 
char Display[21]=""//提供儲存轉換的結果 
 
int Base,Quotient,Residue,Number
 
// Base=進位轉換的基數, Quotient=商數, 
 // Residue=餘數, Number=輸入的數值 
 
int i;       // 供 for loop 使用 
 
char Temp;   // 供 for loop 使用 
 

 
while(1// 重複執行輸入與轉換的 while loop  
   

    
// 構成數字輸入的功能 
    
printf("\n請輸入10進位數數字:");
    
scanf("%d", &Number);
    
    
// 係利用長除法以下的 while loop 實現,取得進位數轉換值。
    // 但是數值左右顛倒的。 
    
Quotient=Number// scanf 從取得的數值給 Quotient 
    
Base=16//設定底數的除數。 
    
Index=0// Display 的 Index 規零 
    
while (Quotient 0)    // 只要商數 > 0 就進入執行 
      
{
       
Residue Quotient// 設定長除法的被除數      
       
Quotient /= Base;   // 取得目前的商數 
       
Residue  %= Base;   // 取得目前的餘數 
       
Display [Index++] = HEX_ABC_if (Residue,1); 
       
// 將取得的餘數轉成 hex 編碼,並儲存到 Display 中。 
      
}
    
Display[Index+1]='\0'// 補上 C/C++ 語言的字串結尾。 

    // 以下的 for loop 是把 Display 中的左右顛倒結果,反轉修正回來。 
    
for (0Index/2i++)
       { 
        
Temp Display[i];
        
Display[i] = Display[Index-1-i];
        
Display[Index-1-i] = Temp;
       }       
 
    
printf("\n輸入的10進位數:[%d]\n",Number);
    
printf("輸出的16進位數:[%s]\n",Display);
   }
 return 
0;

__________________
在「專業主討論區」中的問題解決後,要記得按一下 http://forum.slime.com.tw/images/stamps/is_solved.gif 按鈕喔,
這是一種禮貌動作。

一樣是在「專業主討論區」中發問,不管問題解決與否,都要回應別人的回答文喔。
不然搞 [斷頭文],只看不回應,下次被別人列入黑名單就不要怪人喔。

天線寶寶說再見啦~ ... 天線寶寶說再見啦~

迪西:「再見~ 再見~」

Otaku Culture Party 關心您 ...
getter 目前離線  
送花文章: 37855, 收花文章: 6441 篇, 收花: 26052 次
回覆時引用此帖
向 getter 送花的會員:
a471 (2014-11-01)
感謝您發表一篇好文章